void CTEST::OnButton4()
{
// TODO: Add your control notification handler code here
/* UpdateData(TRUE);
UINT i=(m_show>>1);*/
int i=0;
i=(4>>2);
}
按下Button4按鈕后,請問為什么i會一直等于0?位移運算為啥不管用?
uj5u.com熱心網友回復:
不會吧 !int i=0;
i=(4>>2);
afxDump << i << "\n";// =1
uj5u.com熱心網友回復:
除錯模式輸出看看, 可能是被優化掉了
void CTEST::OnButton4()
{
int i=0;
i=(4>>2);
TRACE(_T("4>>2=%d\n"), i);
}
uj5u.com熱心網友回復:
用了你的代碼就正常了。請問有沒有什么辦法不用加trace直接能用移位運算子就能得到結果呢?
uj5u.com熱心網友回復:
運算本身沒有什么問題,只是因為下面沒有陳述句,除錯模式下(禁用優化)時,執行完 i=4>>2 后,代碼會停到結束的大括號處而看不到堆疊變數,下面再加一個陳述句或除錯指標往上拖一步,就能看到
Release模式下,因為變數后面沒有用到,所以會被優化掉
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/232745.html
標籤:基礎類
下一篇:如何重繪對話框界面
