这个函数执行完后会返回啥结果呢

据我所知,除了main函数没有返回值编译器会添加一条return 0之外,其它函数若不指名返回值会产生未定义的行为。x86的calling convention决定返回值存放在EAX寄存器中,因此运行结果由返回时那个寄存器的值决定。
■网友
如果编译器优化比较极端,循环不会得到执行,而是直接返回,体现到汇编上就只是一个retn指令。至于返回值,即是retn指令执行时eax的值。test函数显然没有“显式的”修改eax的行为,eax的值应该依赖于当时的执行环境(比如调用者)。实际运行时返回值应该是一个相对固定的“垃圾”值。一个猜想,不一定对。
■网友
题主为啥要把这些代码挤在一行OTZ
■网友
引发未定义行为
■网友
返回的值是一个垃圾值。
■网友
打开编译warning all以后你就知道有什么错误了另外你们老师可以下岗了
■网友
应该不会有返回的.


    推荐阅读