关于void main()
1. 本人是一个非计算机专业的C语言初学者,现在看The C Programming Language;2. 仅针论坛里的一个常见问题说一下个人的看法,说错的地方恳请大家指出;
3. 的确,void main()可以在一些编译器上执行,但并不代表这样写是正确的;
4. 我想提出的是,void main(),它必须是错的,K&R在《The C Programming Language》(C程序设计语言)1.7节中就有提到main要向程序所执行的环境返回0,以表明程序正常结束;Andrew Koening在《C Traps and Pitfalls》(C陷阱与缺陷)3.10节中有提到,如果一个程序的main函数不返回任何值,有可能看上去执行失败;Samuel P.Harbison在《C A Reference Manual》(C语言参考手册)9.9节中有提到,在C99之前,main函数的返回类型常常被省略,采用默认类型int,在C99中,这种做法不再允许;Steve Summit在《C Programming FAQs》(C语言常见问题集)11.12中明确提出,不能将main的返回类型为void,必须声明为返回int,且没有参数或者接受适当类型的两个参数;
5. Steve Summit在《C Programming FAQs》(C语言常见问题集)11.11中提出,main()应该声明为int main(), int main(void),或者int main(int argc, char *argv[])。
[ 本帖最后由 xiehou314159 于 2011-10-18 22:09 编辑 ]