| 
 | 
 
 
发表于 2019-2-22 12:08:07
|
显示全部楼层
 
 
 
不用辨析。 
 
有的教材中将 main 函数写作: 
void main() 
{ 
    // Some Code... 
} 
这在 VC6.0 下能够通过编译,但在 C-Free、GCC 中却会报错,因为这不是标准的 main 函数的写法,大家不要被误导。 
 
int main()函数体中要求有返回值。 
 
在最新的 C99 标准中,只有以下两种定义方式是正确的: 
 
int main( void )  /* 无参数形式 */ 
{ 
    ... 
    return 0; 
} 
int main( int argc, char *argv[] ) /* 带参数形式 */ 
{ 
    ... 
    return 0; 
} 
int指明了main()函数的返回类型,函数名后面的圆括号一般包含传递给函数的信息。void表示没有给函数传递参数。关于带参数的形式,我们等会讨论。 
 
浏览老版本的C代码,将会发现程序常常以。 
 
main() 
 
这种形式开始。C90标准允许这种形式,但是C99标准不允许。因此即使你当前的编译器允许,也不要这么写。 
 
你还可能看到过另一种形式。 
 
void main() 
 
有些编译器允许这种形式,但是还没有任何标准考虑接受它。C++ 之父 Bjarne Stroustrup 在他的主页上的 FAQ 中明确地表示:void main( ) 的定义从来就不存在于 C++ 或者 C 。所以,编译器不必接受这种形式,并且很多编译器也不允许这么写。 
 
坚持使用标准的意义在于:当你把程序从一个编译器移到另一个编译器时,照样能正常运行。 |   
 
 
 
 |