小编Ole*_*567的帖子

Visual C++ 2008错误?

非常简单的代码(在MS Visual C++ 2008 Express下):

#include <iostream>
using namespace std;

int main()
{
    for (int a=1; 2*a<=7; a++)
        cout << a << endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

调试模式给出了正确的结果:

1
2
3
Run Code Online (Sandbox Code Playgroud)

但是发布模式给了我错误的结果:

1
2
Run Code Online (Sandbox Code Playgroud)

好吧,我理解可能的答案"使用2*a <8"; "为什么不<= 3","a <4".

我不想更改代码,因为它是正确的代码(在调试模式下运行良好,所有变量都初始化良好,等等).

  • 您是否有与Visual C++ 2008 Express相同的错误?
  • 这个小虫是否存在于年轻版本(2010年,2012年)?
  • 如何避免这个bug?
  • 是否有修复它的SP?
  • 也许改变一些编译选项(不是默认选项)?

更新:

我写的时候

cout << a+1 << endl;
Run Code Online (Sandbox Code Playgroud)

要么

cout << 2*a << endl;
Run Code Online (Sandbox Code Playgroud)

它工作/编译正确(3行输出).


注意: 我尝试使用VC++ 2008 Express在不同的计算机上运行.同样的行为.

c++ visual-studio-2008

11
推荐指数
1
解决办法
278
查看次数

标签 统计

c++ ×1

visual-studio-2008 ×1