在阅读K&R第二版时,我注意到程序始终以"main(){"开头.我一直认为main()必须在它之前有int或void.所以它看起来像"int main()"或"void main()".什么是"主()",有什么区别?
main()是旧的K&R样式,其中int省略了,因为int如果未指定,则返回类型默认为(您应该指定它).另外,空括号是K&R样式,表明它不带参数..在C99中,现在应该void表明这样.空括号表示该函数将接受任意类型的任意数量的参数,这显然不是您想要的.所以最终的结果是:
int main(void) { ... }
Run Code Online (Sandbox Code Playgroud)
main()应该返回int..约定说最后的return 0;语句将有助于向调用者指示程序执行成功 - 非0返回值表示异常终止.
对你的问题更直接的回答是main() { ... }有效的,因为它没有错.编译器发现没有为main函数声明返回类型,因此它默认为int.空括号表示它main接受任何类型的任意数量的参数,这也没有错.但是,要符合C99风格/标准,请使用
int main(void) { ... }
Run Code Online (Sandbox Code Playgroud)