在C语言中,main()能否替代int main()作为主函数起始?
关于C语言中main()省略int的问题解答
你看到的《C程序设计语言(第2版)》里的
main()写法,是早期C标准(比如C89)的合法语法——当时C语言允许省略函数的返回类型,此时默认返回类型为int,所以main()等价于int main()。从C99标准开始,C语言强制要求
main函数必须显式声明返回类型int,省略返回类型的写法不再符合标准。现代编译器默认遵循较新的标准(比如C11、C17),所以你省略int后会编译失败。特殊场景下如果要兼容旧写法,可以给编译器添加兼容C89的编译选项,比如GCC使用
-std=c89或-ansi参数,让编译器按旧标准处理。但这种做法不推荐,会降低代码的可移植性,也不符合现代C语言的编码规范。总结:现代C环境下,必须显式写出
int main()(或带参数的int main(int argc, char *argv[]))才能保证代码正常编译运行,书中的写法是历史遗留的规范,放在当下已经过时。
内容的提问来源于stack exchange,提问作者Greeshma
相关产品推荐
相关产品推荐

