朋友们,请教大家个问题。问题并不简单哦!
环境:MDK 4.12 硬件STM32F103
程序如下:
u16 const ID = 0xffff; // 定义一个flash型常量;
...
int main (void)
{
if(ID == 0xffff) // 检测是程序第一次运行
{
通过IAP,操作flash编程,把ID赋值为0;
dosomething;
}
}
问题来了,编译器自以为是,认为我的 if(ID == 0xffff) 是多余的,直接没有编译。
朋友们,我该如何告诉编译器,我判断一个常量,不是个白痴行为呢? |