如:
BOOL func()
{
if(~~)
{
return fALSE; //flag 1
}
if(##)
{~~~;
~~~;
~~~;
return TRUE; //flag 2
}
return TRUE; //flag 3
}
我调试的时候,程序走到flag 2位置 接着往 flag 3 再下一步 突然又跳到 flag 1
这是个单线程的,而且这个函数只执行一次,返回结果总是为FALSE 我把flag 1的改成 if(0) 还是会执行return FALSE;
非常奇怪,为什么会这样啊,是不是内存不对齐
并不奇怪,这3个 return 跳转到的地址不是一样的吗,调试器多次执行return,只是一种现象而已。
建议你把调试窗口切到汇编看看就明白了。