volatile bool bTest;1)
for(int i = 0; i < 5; ++i)
if(i == 3)
break;
if(bTest)
{
int aa = 0;
}
int bb = 0;2)
for(int i = 0; i < 5; ++i)
{
if(i == 3)
break; if(bTest)
{
}
}
if(bTest)
{
int aa = 0;
}
int bb = 0;3)
if(bTest)
{
int aa = 0;
}
int bb = 0;

解决方案 »

  1.   

    怎么会是一样的呢?for循环各自不同啊
    3没有循环。1循环中没有if语句。
      

  2.   

    效果都一样啊。前面两个多了3次没用的循环而已。
    三次循环能耽误多少时间?对现在的CPU来说?能到一个微妙吗?
      

  3.   

    没有猜错的话你的程序是多线程或用到了中断吧
    volatile bool bTest;//bTest变量可能会被外部修改,让编译器不要优化它
    最好不要改.
      

  4.   

    for(int i = 0; i < 5; ++i)
    {
    if(i == 3)
    break;
    }
    //不知道上面的循环干吗用的??
    if(bTest)
    {
    int aa = 0;
    }
    int bb = 0;
    //1和3一样的结果,如果实际代码是这样的话
      

  5.   

    对啊
    volatile 关键字是禁止编译器优化的
    既然用到了那一定不要动吧