| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 603 人关注过本帖
标题:对于 void main()的错误
取消只看楼主 加入收藏
NeilZ
Rank: 1
等 级:新手上路
帖 子:3
专家分:2
注 册:2014-8-27
结帖率:0
收藏
 问题点数:0 回复次数:0 
对于 void main()的错误
以下观点是自我抒发以及摘录的,如有错误请大神指正:

很多人现在都在学习C或者C++的时候都习惯性地去打上  void main() ,其实这是错误的。C/C++ 中从来没有定义过void main()。本贾尼·斯特劳斯特卢普(C++之父)说过,void main() 从来就不属于C或者是C++ 。

早期的时候 main() 是可以接受的,不过在最新的 C99 标准和C++的定义中,只有以下两种定义方式是正确的:

           int main( void )

           int main( int argc, char *argv[] )

main 函数的返回值类型必须是 int ,这样返回值才能传递给程序的激活者(如操作系统)。


/////////////////////////////////////////////以下是蚂蚁的 C/C++ 标准编程 以及 作者 antigloss 共同所有  ,尊重别人的成果。
 返回值的作用

        main 函数的返回值用于说明程序的退出状态。如果返回 0,则代表程序正常退出,否则代表程序异常退出。下面我们在 winxp 环境下做一个小实验。首先编译下面的程序:

           int main( void )

           {

                  return 0;

           }

然后打开附件里的“命令提示符”,在命令行里运行刚才编译好的可执行文件,然后输入“echo %ERRORLEVEL%”,回车,就可以看到程序的返回值为 0 。假设刚才编译好的文件是 a.exe ,如果输入“a && dir”,则会列出当前目录下的文件夹和文件。但是如果改成“return -1”,或者别的非 0 值,重新编译后输入“a && dir”,则 dir 不会执行。因为 && 的含义是:如果 && 前面的程序正常退出,则继续执行 && 后面的程序,否则不执行。也就是说,利用程序的返回值,我们可以控制要不要执行下一个程序。这就是 int main 的好处。如果你有兴趣,也可以把 main 函数的返回值类型改成非 int 类型(如 float),重新编译后执行“a && dir”,看看会出现什么情况,想想为什么会出现那样的情况。顺便提一下,如果输入 a || dir 的话,则表示如果 a 异常退出,则执行 dir 。

int main( int argc, char *argv[], char *env[] ) 也不是标准C里面定义的东西~char *env[]是某些编译器提供的扩展功能~用于获取系统的环境设定~因为不是标准~故而移植性差~不推荐使用
搜索更多相关主题的帖子: 斯特劳斯 习惯性 
2014-09-06 21:48
快速回复:对于 void main()的错误
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023800 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved