| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3583 人关注过本帖
标题:[求助]dev c++的运行窗口问题
只看楼主 加入收藏
热情依然
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:715
专家分:0
注 册:2005-4-5
收藏
得分:0 
还有,这个有没有得通过验证确实是在return 0;的时候引起析构动作??

c++/C + 汇编 = 天下无敌
2006-07-25 20:01
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
一样去做的, 但是建议你加上 return 0;

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2006-07-25 20:03
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
是不是由return 0; 触发的, 不是问题的根本。 我想说的是 那些 析构函数 会被执行的, 不会被遗忘的。

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2006-07-25 20:08
热情依然
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:715
专家分:0
注 册:2005-4-5
收藏
得分:0 
以下是引用kai在2006-7-25 20:03:46的发言:
一样去做的, 但是建议你加上 return 0;

谢谢解答,一直以来我都以为是在main()函数结束之后才释放


c++/C + 汇编 = 天下无敌
2006-07-25 20:09
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
你所涉及的问题是编译器内部设计的问题, 编译器肯定得提供这么一种机制, 即当程序退出时, 调用所有的析构函数。 至于如何实现的,我不清楚。

个人有个人的想法, 我不觉得有什么必要在这个层面做深入的研究。

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2006-07-25 20:11
热情依然
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:715
专家分:0
注 册:2005-4-5
收藏
得分:0 
以下是引用kai在2006-7-25 20:08:03的发言:
是不是由return 0; 触发的, 不是问题的根本。 我想说的是 那些 析构函数 会被执行的, 不会被遗忘的。

这个我理解,析构函数是肯定会执行的,但是究竟是 在return 0的时候执行,还是在main结束后,又编译器来实现我就不清楚了.经你解答,我清晰了很多, 还有一个"弱智"的问题,我到现在还搞不清楚 return 0;之后,告诉编译器程序正常退出有什么好出??如果不写return 0;又会出现哪里不良的结果??


c++/C + 汇编 = 天下无敌
2006-07-25 20:13
热情依然
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:715
专家分:0
注 册:2005-4-5
收藏
得分:0 
以下是引用kai在2006-7-25 20:11:58的发言:
你所涉及的问题是编译器内部设计的问题, 编译器肯定得提供这么一种机制, 即当程序退出时, 调用所有的析构函数。 至于如何实现的,我不清楚。

个人有个人的想法, 我不觉得有什么必要在这个层面做深入的研究。

那是,但是我怕自己说错了,误导别人,起码我觉得你C++比我好.


c++/C + 汇编 = 天下无敌
2006-07-25 20:14
热情依然
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:715
专家分:0
注 册:2005-4-5
收藏
得分:0 
以下是引用kai在2006-7-25 20:11:58的发言:
你所涉及的问题是编译器内部设计的问题, 编译器肯定得提供这么一种机制, 即当程序退出时, 调用所有的析构函数。 至于如何实现的,我不清楚。

个人有个人的想法, 我不觉得有什么必要在这个层面做深入的研究。

那是,但是我怕自己说错了,误导别人,起码我觉得你C++比我好.


c++/C + 汇编 = 天下无敌
2006-07-25 20:15
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
你提到了一个非常容易回答而又非常难回答的问题。 首先从普遍意义上来讲, 任何函数是否作用取决于是否被调用, 那么 main 函数是被谁调用的呢? 他不被你所写的代码中的任何一个函数调用。 main() 被 startup 代码调用, 这个 startup 是 编译器添加进去介于你的程序和操作系统之间的。 当程序结束时, 安全退出就返回 0, 这样做是为了告诉操作系统, 程序安全退出。 如果你没有 在你的代码中加上 return 0; 那么 按照C++ 语言标准, 会自动帮你添上 return 0; 如果你将 main() 定义为 void 类型返回, 那么按照 C++ 标准, 将认为不合法。 你可以用 Dev 来试一下。

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2006-07-25 20:44
热情依然
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:715
专家分:0
注 册:2005-4-5
收藏
得分:0 
以下是引用kai在2006-7-25 20:44:31的发言:
你提到了一个非常容易回答而又非常难回答的问题。 首先从普遍意义上来讲, 任何函数是否作用取决于是否被调用, 那么 main 函数是被谁调用的呢? 他不被你所写的代码中的任何一个函数调用。 main() 被 startup 代码调用, 这个 startup 是 编译器添加进去介于你的程序和操作系统之间的。 当程序结束时, 安全退出就返回 0, 这样做是为了告诉操作系统, 程序安全退出。 如果你没有 在你的代码中加上 return 0; 那么 按照C++ 语言标准, 会自动帮你添上 return 0; 如果你将 main() 定义为 void 类型返回, 那么按照 C++ 标准, 将认为不合法。 你可以用 Dev 来试一下。

谢谢,经过你解答,我清晰了很多,我测试过了

7 D:\Dev-Cpp\main.cpp `main' must return `int'

关于那个statup我好像在那里见过,哦对了,我是在socket编程的时候加载套字节库的时候用过 WSAStartup
跑题了


c++/C + 汇编 = 天下无敌
2006-07-25 20:53
快速回复:[求助]dev c++的运行窗口问题
数据加载中...
 
   



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

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