在阅读 K&R 第 2 版时,我注意到程序总是以“main(){”开头。我一直认为 main() 在它之前必须有 int 或 void 。所以它看起来像“int main()”或“void main()”。什么是“main()”,有什么区别?
问问题
2151 次
3 回答
8
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) { ... }
于 2012-06-16T22:20:43.130 回答
0
因为旧版本的 c 支持这一点。
main()
相当于
int main()
于 2012-06-16T22:24:03.940 回答
-4
大多数时候语法取决于编译器。例如,当您使用 Visual c++ 时,您编写“void main”,但当您使用 GCC 时,您应该编写“int main()”,然后如果程序完成好或坏,则返回 0 或 1。
于 2012-06-16T22:23:10.587 回答