一个超级菜题...

danny1221 2008-03-14 02:57:42
#include <climits>

int main( )
{
for( size_t i = UINT_MAX; 0 < i; --i );
}

用VC运行上面的代码,Bulid选Debug时,程序总是不能结束,
而选Release时,程序可以运行结束.这是为什么???
...全文
84 7 打赏 收藏 举报
写回复
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
greadking 2008-03-14
  • 打赏
  • 举报
回复
可以把i打出来看看
danny1221 2008-03-14
  • 打赏
  • 举报
回复
谢谢各位的回答,其实在DEBUG下也可以运行结束,只是时间很长
正如akirya 所说.
过去的我 2008-03-14
  • 打赏
  • 举报
回复
i为0的时候就不符合 0 < i ,程序自然退出了,无限循环不知道是啥情况
ouyh12345 2008-03-14
  • 打赏
  • 举报
回复
关闭优化选项,然后再试试
过去的我 2008-03-14
  • 打赏
  • 举报
回复
我用mingw ,debug ,release 版都试了,过了几秒便结束了
Supper_Jerry 2008-03-14
  • 打赏
  • 举报
回复
size_t 是无符号类型,所以当i为0的时候,再减1就又变成最大值了
release能过原因如楼上大侠所说
  • 打赏
  • 举报
回复
debug的时候没优化,一直在循环
release的时候直接将这个空循环给优化掉了,所以直接结束。
相关推荐
发帖
C++ 语言

6.3w+

社区成员

C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
帖子事件
创建了帖子
2008-03-14 02:57
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下