2012-11-30 153 views
1

我通过简单的操作循环像这样的编译触发器:编译器跳过循环

for (i = beginvar; i < endvar; i++) { 
    for (j = beginvar; j < endvar; j++) { 
     num1 = ((num1 + num2)/num1); 
    } 
} 

我从来没有做任何NUM1,然而,这样编译器跳过它,这个循环用时0毫秒不管beginvar和endvar有多大。

我的问题是,我该如何强制编译器执行嵌套循环?

我试过将num1声明为volatile,但是这比我想要的更少优化。我希望编译器进行优化,但我也希望它能够执行此循环。

我也不会像环路的东西后打印任何东西的num1终端

+0

您应该关闭优化并在循环中使用您的'num'变量。 –

回答

1

使用的值,这样编译器不能平凡消除它。

+0

我能用它做什么?在循环后给我一个浮点异常做num1 ++,我不知道为什么。它在我打印到终端的时候有效,但我不想打印它。 –

+0

例如,您可以将其打印到控制台。 –