C语言中return语句的正确使用与void main()的误解解析
关于C语言中return的一些总结。 Return是C++中的预定义语句,它提供了种植函数执行的放大。当return语句提供值时,需要提及main函数的定义。以下是在网上找到的资料。仔细消化一下。他们都使用voidmain()。事实上,这是错误的。 voidmain() 从未在 C/C++ 中定义过。 C++之父Bjarne Stroustrup在其主页的FAQ中明确指出,Thedefinitionvoidmain(){/*...*/}isnotandneverhasbeenC++,norhasitevenbeenC.(voidmain()在C++或C中从未存在过)。我分别说一下C和C++标准中main函数的定义。 ,main() 是可以接受的。 (《C 程序设计语言第二版》)使用 main()。然而,在最新的C99标准中,只有以下两个定义是正确的:intmain(void)intmain(intargc,char*argv[])(参考:ISO/IEC9899:1999(E)Programminglanguages—)当然,我们可以也做一些小的改变。例如:char*argv[]可以写成char**argv; argv和argc可以更改为其他变量名称(例如intval和charval),但必须遵守变量命名规则。

如果不需要从命令行获取参数,请使用intmain(void);否则,请使用 intmain(intargc,char*argv[])。 main函数的返回值类型必须是int,这样返回值才能传递给程序的激活者(如操作系统)。如果main函数末尾没有return语句,C99规定编译器应该自动加上return0;到生成的目标文件(如exe文件)中,说明程序正常退出。不过,我仍然建议您在 main 函数末尾添加 return 语句。虽然这不是必需的,但却是一个好习惯。注意vc6不会添加return0;到目标文件。这可能是因为vc6是1998年的产品,所以不支持这个功能。现在你明白为什么我建议你添加一个 return 语句了吧!但是,(Linux下的C编译器)会加上return0;到生成的目标文件。 ++C++98 定义了以下两个 main 函数定义方法: intmain() intmain(intargc, char*argv[]) (参考:ISO/IEC14882 (1998-9-01)Programming languages—C++) intmain() 等价到 C99 中的 intmain(void); intmain(intargc, char*argv[]) 的用法也与C99中定义的相同。同样,main函数的返回值类型也必须是int。如果main函数末尾没有return语句,C++98规定编译器要自动加上return0;到生成的目标文件。同样,vc6也不支持此功能,但g++(Linux下的C++编译器)支持。 3