在阅读K& R第二版时,我注意到程序始终以 "主(){&#34 ;.我一直认为main()必须在它之前有int或void。所以它看起来像" int main()"或" void main()"。什么是" main()"有什么区别?
答案 0 :(得分:7)
main()
是旧的K& R样式,其中int
被省略,因为如果未指定,则返回类型默认为int
(您应该指定它)。另外,空括号是K& R样式以表明它不带参数..在C99中,现在应该void
来表示这样。空括号表示该函数将接受任意类型的任意数量的参数,这显然不是您想要的。所以最终的结果是:
int main(void) { ... }
main()
应该返回int
..约定说最后的return 0;
语句将帮助向调用者指示程序执行成功 - 非0返回值表示异常终止。
对您的问题更直接的回答是main() { ... }
有效,因为它没有错。编译器发现没有为main
函数声明返回类型,因此默认为int
。空括号向它指示main
接受任何类型的任意数量的参数,这也没有错。但是,要符合C99样式/标准,请使用
int main(void) { ... }
答案 1 :(得分:0)
因为旧版c。
支持此功能main()
相当于
int main()
答案 2 :(得分:-3)
语法大多数时候取决于编译器。例如,当您使用visual c ++时,您会编写“void main”,但是当您使用GCC时,您应该编写“int main()”,然后在程序完成好或坏的情况下返回0或1。