编译器跳过循环

时间:2012-11-30 18:49:38

标签: c flops

我正在通过循环编译flops,其操作类似于:

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

然而,我从不对num1做任何事情,因此编译器正在跳过它,无论beginvar和endvar有多大,这个循环都需要0 ms。

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

我已经尝试将num1声明为volatile,但这样做的优化次数比我想要的要少。我希望编译器进行优化,但我希望它也能执行此循环。

我也不想在终端上打印任何东西

1 个答案:

答案 0 :(得分:1)

在循环之后使用num1的值,这样编译器就不能轻易地消除它。