编译器在对程序进行编译的过程中,对于return语句仅仅翻译成简单的汇编语句,并不是通过识别return来结束函数的,真正是当遇到“}”后才产生程序结束语句,包括弹出系统栈,检测栈溢出并且ret等等。举例说明吧:就用main函数来说,若定义为int main() return 0语句被翻译为xor eax eax。若定义为void main()则仅仅是少了清eax寄存器的这个作用而已。真正ret语句的产生是在}后才有的。