为什么在c语言里,int main中不加return0也可以?
main函数是我们学习C语言接触的第一个函数,相信对于下面的代码,大家再熟悉不过了。
main函数的返回值首先要明确:在C/C++标准规范中,约定main函数必须要有返回值,返回值必须为int类型。
C99规定:如果 main 函数的末尾没有return 语句的话,编译器要自动在生成的目标文件中加入return 0,表示程序正常退出。
C++98 中定义main函数的用法与C99 中一致,即main函数必须有int类型返回值。如果main函数的末尾没有return语句,编译器要自动在生成的目标文件中加入 return 0; 。
所以在完全遵守C/C++标准的编译器中,int main不加return 0也是可以的,编译器会帮助补全这个逻辑。
但是不幸的是不是所有编译器的所有版本都能够支持标准规范,为了程序能够有更好的可移植性,建议不要省略return 0语句。