int main(void)vs main()

时间:2017-10-07 18:29:30

标签: c main

我正在阅读The C Programming Language,第一个程序是打印Hello World我编写的代码如下所示:

#include <stdio.h>

main()
{
    printf("hello, world\n");
}

但是我收到了错误warning: type specifier missing, defaults to 'int' [-Wimplicit-int] main() 。我通过编写如下代码来修复它:

#include <stdio.h>

int main()
{
    printf("hello, world\n");
}

任何人都可以告诉我有什么区别,我为什么要这样写呢?

1 个答案:

答案 0 :(得分:0)

旧版本的C具有默认类型的概念。如果声明的变量没有类型,则假定为int。与函数类似,如果定义的函数没有返回类型,则还假定它返回int

更新版本的C(即不到25年的版本)取消了默认类型,并在这种情况下输出警告。最好明确指定类型以避免歧义,并与更现代的C保持一致。