if语句的判断问题
有时候在编译器上调试程序的时候发现有的if语句明明符合条件却跑不进去是什么原因啊?
比如说:
typedef enum{
MONDAY,
TUESDAY,
WENSDAY,
THURSDAY,
FRIDAY
}workday;
int main()
{
workday oneday ;
....
oneday = WENSDAY;
....
if(oneday == WENSDAY) // 在这里调试的时候就是不往if子句里跳,换成2也不行。
{ // 但是后来又编译程序之后好了,能解释下为什么会发生这种情况吗?
.....
}
else
{
.....
}
return 0;
}
[解决办法]
重新编译后没事就行了,,,有时编译器还会留下之前编译过的记忆...
[解决办法]
编译器 重新来过的 ,没改动一次 ,就需要重新 保存 编译 一次
[解决办法]
结果可能编译器在自动优化的过程中忽略了那段代码,但为什么会出现这个情况不敢肯定
[解决办法]
Debug从程序的头部开始找