C99 标准中,只有以下两种定义方式是正确的:
int main( void )/* 无参数形式 */
{ ...
return 0;
}
int main( int argc, char *argv[] )/* 带参数形式 */
{ ...
return 0;
}
C++ 之父 Bjarne Stroustrup 在他的主页上的 FAQ 中明确地表示:void main( ) 的定义从来就不存在于 C++ 或者 C 。
所以,编译器不必接受这种形式,并且很多编译器也不允许这么写。
坚持使用标准的意义在于:当你把程序从一个编译器移到另一个编译器时,照样能正常运行。