int main()
一个 C 程序总是以 main() 函数开始执行的,可以说这就是 C 程序的基本模块。
C 语言因为年代久远,在不同时期都有着不同的标准 C89 C99 C11 ...
在 C89 里无返回的主函数或者空主函数还是可以被接受的,但它仅仅是可接受,并不是标准所允许的语句。
void main()
或者
main()
在 C99 的标准里取消了不写函数返回类型默认就是 int 的规定,所以 main()
不再被支持。
至于 void main() 本来就不是标准所允许的内容,更没有必要被支持。
这就导致了老师在课上用 VS2010 演示的代码我在自己电脑上用 VS2017 打了一遍一摸一样的却不能通过编译的情况,实在是很尴尬的。
目前大部分的书籍经过修订都删除或者修改了 void main() 这类语句,但是并没有对此进行说明,翻看图书馆的旧书籍弄的人一头雾水的。而且因为教材更新的成本,在课后布置的书面作业里遍地 void main()
,实在是不知道从哪里吐槽起。
还是尽量戒除掉 void main() 这种代码风格吧,如果想自己的代码方便移植的话。 如果不需要从命令行中获取参数,可以用 int main(void)
参考于 C Primer plus 第五版
写的很好,然而现在 C89 好像还是用得最多的标准。 void main() 出现在教材里,真的很让人失望