在 C/C++ 中,将main函数定义成 void main() 。然而这种做法是错误的!因为在 C/C++ 标准中,从来没有定义过 void main() 这样的代码形式。C++ 之父 Bjarne Stroustrup 在他的主页上的 FAQ 中明确地写着 "The definition void main( ) { /* ... */ } is not and never has been C++, nor has it even been C.”。
main 函数的返回值类型必须是 int ,这样返回值才能传递给程序的激活者(如操作系统)。
操作系统将 main 作为程序入口,调用 main 函数来执行程序;main 函数执行其语句序列,并返回一个值给操作系统。在大多数系统中,main 函数的返回值用于说明程序的退出状态。当主函数正常结束时,得到的函数返回值为 0;当 main 函数在执行过程出现异常或者错误时,函数返回值为一个非 0 的数,代表程序异常退出。
main 函数正确的定义方式如下:
C99 标准中,main 函数的两种定义方式:
int main( void ) ;
int main( int argc, char *argv[] );
C++98 标准中,main 函数的两种定义方式:
int main( ) ;
int main( int argc, char *argv[] ) ;
所以在使用main函数的时候,一定要将其返回值的类型设置为 int 型。同时 “ return 0; ” 这条语句也是千万不能遗漏的!