我可以写“void main()”吗?
2008-03-21 15:20
197 查看
原文地址:http://www.research.att.com/~bs/bs_faq2.html#void-mainQ: 我可以写"void main()"吗?A: 这样的定义不是C++,也不是C。(参见ISO C++ 标准 3.6.1[2] 或 ISO C 标准 5.1.2.2.1) 一个遵从标准的编译器实作应该接受 和 编译器也可以提供main()的更多重载版本,不过它们都必须返回int,这个int是返回给你的程序的调用者的,这是种“负责”的做法,“什么都不返回”可不大好哦。如果你程序的调用者不支持用“返回值”来交流,这个值会被自动忽略——但这也不能使void main()成为合法的C++或C代码。即使你的编译器支持这种定义,最好也不要养成这种习惯——否则你可能被其他C/C++程序员认为浅薄无知哦。 在C++中,如果你嫌麻烦,可以不必显式地写出return语句。编译器会自动返回0。例如: 麻烦吗?不麻烦,int main()比void main()还少了一个字母呢 :O)另外,还要请你注意:无论是ISO C++还是C99都不允许你省略返回类型。这也就是说,和C89及ARM C++[译注:指Margaret Ellis和Bjarne Stroustrup于1990年合著的《The Annotated C++ Reference Manual》中描述的C++]不同,int并不是缺省返回值类型。所以, 会出错,因为main()函数缺少返回类型。 |
相关文章推荐
- javabean,和map有什么区别? javabean完全可以用map替代
- 发布我的下棋作品--Monkey黑白棋(AI还可以,战胜了不少其它的黑白棋程序)
- php.ini中文注释版 ---关于路径查找那部分很好,解决问题了。还可以看phpinfo() 信息
- 一个分页的java工具类,可以参考
- angularjs 下实现即可通过select选择 也可以通过input输入
- NSNumberFormatter 应该可以满足你对数据形式的一般需求,值得了解一下
- ASP.NET 是微软所提供的网站开发技术。程序设计师可以利用这些技术建置一个网站/页应用程序。
- 19.可以完全清除垃圾文件的秘密武器
- 串行通信可以直接传递字符串吗
- MySQL提供的可以计算两个时间间隔的函数
- select回显示--这个方法虽然可以传值给后台,但是分页需要点击两次,才能提交,作为弯路
- 什么样的人可以担任项目经理?
- 域控制器上可以装还原软件吗?
- 解决apache服务器本地可以访问,同局域网内他人不能访问的问题(转)
- Arcgis api for js:PrintTemplate可以做地图截图功能
- 100个直接可以拿来用的JavaScript实用功能代码片段
- 希望可以解脱
- 用delphi 实现文件下载,可以用于软件的升级
- 网站验证码改了多次还是可以用软件发布供应信息
- QTreeView 限制特定的深度、特定深度下的列 是否可以编辑