C++标准中规定的:main函数的返回值应该定义为int类型。
对于”void main(void);”这种错误形式,虽然在一些编译器中可以通过编译(如vc6),但并非所有的编译器都支持。
main()函数的原型是:
int main(int argc, char **argv, char **env)
如果 main 函数的最后没有写 return 语句的话,C99 规定编译器要自动在生成的目标文件中(如 exe 文件)加入 return 0 ,表示程序正常退出,但是不是所有的编译器都是如此做, 有的是提示错误, 有的会提示warning自动添加。
在C/C++ 中,不返回任何信息的函数原型为“void function(…);”。可能正是因为这个,所以很多人都误认为如果不需要程序返回值时可以把main函数定义成void main() 。然而这种做法是错误的!
C++Primer第五版中文版(Page28)明确指出,main()函数的返回类型必须是int类型,即整数类型。
虽然在一些编译器中,void main() 可以通过编译,但并非所有编译器都支持void main() ,因为标准中从来没有定义过void main() 。
main 函数只有以下两种定义方式是正确的:
int main()
int main(int argc, char *argv[])
main 函数的返回值应该定义为 int 类型,C 和 C++ 标准中都是这样规定的。这样程序才能传告诉操作系统是否成功执行完毕。
但是,main的返回值类型,写成void也不会错,它等效于没有return 语句的int类型。不过为了养成良好的习惯,最好还是写成int。
另外,return返回的数值由程序的作者自定。返回不同的值可以代表不同的含义,一般是代表出错的原因。传统上返回0代表程序正常结束(其它返回值代表什么含义,需要程序的开发者向程序的用户说明)。
原文链接:https://blog.csdn.net/yangyong0717/article/details/72934102
C++标准中规定的:main函数的返回值应该定义为int类型。
对于”void main(void);”这种错误形式,虽然在一些编译器中可以通过编译(如vc6),但并非所有的编译器都支持。
main()函数的原型是:
int main(int argc, char **argv, char **env)
转载于:https://www.cnblogs.com/auhz/p/9756853.html
在C/C++ 中,不返回任何信息的函数原型为“void function(...);”。可能正是因为这个,所以很多人都误认为如果不需要程序返回值时可以把main函数定义成void main() 。然而这种做法是错误的!
C++Primer第五版中文版(Page28)明确指出,main()函数的返回类型必须是int类型,即整数类型。
虽然在一些编译器中,void main() 可以通过编译,但并非所有编译器都支持void main() ,因为标准中从来没有定义过void main() 。
main 函数只有以下两种定义方式是正确的:
int main()
int main(int argc, char *argv[])
main 函数的返回值应该定义为 int 类型,C 和 C++ 标准中都是这样规定的。这样程序才能传告诉操作系统是否成功执行完毕。
但是,main的返回值类型,写成void也不会错,它等效于没有return 语句的int类型。不过为了养成良好的习惯,最好还是写成int。另外,return返回的数值由程序的作者自定。返回不同的值可以代表不同的含义,一般是代表出错的原因。传统上返回0代表程序正常结束(其它返回值代表什么含义,需要程序的开发者向程序的用户说明)。