我有以下代码:
if (a > uplimit)
{
a = a - uplimit;
indicator = 2;
}
else if (a < lolimit)
{
a = a - lolimit;
indicator = 4;
}
当我编译并运行代码时,似乎代码永远不会转到指示符= 2或指示符= 4给定&gt; uplimit或&lt; lolimit。
但是,如果我在每个代码部分的开头添加一些东西,它就会起作用。
if (a > uplimit)
{
c = 1;
a = a - uplimit;
indicator = 2;
}
else if (a < lolimit)
{
c = 2;
a = a - lolimit;
indicator = 4;
}
似乎编译器正在尝试优化代码。我知道使用volatile可能会解决这个问题。有谁知道可以解决问题的其他方法?
顺便说一下,我正在使用Code Composer Studio。