同样的程序,dev c可以很好执行,keil5却出问题。
#include "stdio.h"
int main(){
int n = 15;
int qtiB = 0;
while(n>0)
{
if(n%2)
{
qtiB = qtiB*10+1;
}
n = n/2;
}
printf("%d", qtiB);
}
num = qtis/2;
while(num>0)
{
if(num%2 != 0)
{
qtiB = qtiB*10+1;
}
num = num/2;
}
UARTprintf("qti:%d\n",qtiB);
问题定位于qtiB = qtiB*10+1;这句话。
猜测由于keil5对代码进行优化导致的。