这个函数执行完后会返回啥结果呢
据我所知,除了main函数没有返回值编译器会添加一条return 0之外,其它函数若不指名返回值会产生未定义的行为。x86的calling convention决定返回值存放在EAX寄存器中,因此运行结果由返回时那个寄存器的值决定。
■网友
如果编译器优化比较极端,循环不会得到执行,而是直接返回,体现到汇编上就只是一个retn指令。至于返回值,即是retn指令执行时eax的值。test函数显然没有“显式的”修改eax的行为,eax的值应该依赖于当时的执行环境(比如调用者)。实际运行时返回值应该是一个相对固定的“垃圾”值。一个猜想,不一定对。
■网友
题主为啥要把这些代码挤在一行OTZ
■网友
引发未定义行为
■网友
返回的值是一个垃圾值。
■网友
打开编译warning all以后你就知道有什么错误了另外你们老师可以下岗了
■网友
应该不会有返回的.
推荐阅读
- 如果你的多肉出现这个长势,要注意这个细节,多肉才会越来越美!
- 『活动』让孩子们欢欢喜喜过新年 这个元旦好有爱!南京聋校举办多种形式庆祝活动
- 免费“单人套餐”背后的故事:爱心让这个冬天不再寒冷
- 夫子庙■“秦淮灯会”“夫子庙小吃”等非遗重点保护 护航夫子庙,这个法明年施行
- 气温■@江苏人,这个周末天气晴!温度缓慢回升,早晚依旧“冻”人
- 山西高校回应“学生体测替考被取消学位:按规定执行
- “九层妖塔”特大盗窃案公益诉讼赔偿金足额执行到位
- #补贴#江阴为何迟迟没执行?|解忧帮 无锡:机动车报废有补贴
- 黄金时间■黄金时间丨哪种产品最节水?购买产品请注意这个标识!
- 『黄金时间』请认准这个蓝色的标志! 黄金时间丨同行业中用水最少的企业
