郑卓峰 发表于 2019-2-22 11:05:35

C语言主函数

辨析int main()、int main(void)、void main(void)、main()和main(void)、int main() 和 void main()

行客 发表于 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 。所以,编译器不必接受这种形式,并且很多编译器也不允许这么写。

坚持使用标准的意义在于:当你把程序从一个编译器移到另一个编译器时,照样能正常运行。

郑卓峰 发表于 2019-2-22 19:20:17

谢谢
页: [1]
查看完整版本: C语言主函数