這本書告訴寫作:靜態無符號整型foo和更高版本如果(foo> 0)?
static unsigned int foo;
後來
if(foo > 0)
{
是錯誤的,它會導致一個很難找到的bug。 這是爲什麼?
在x86彙編語言編程有符號的算術運算指令和 也無符號運算指令, JG JL < -signed算術 JB JA < - 無符號的指令。
因此,編譯器可以直接組裝,如果(FOO> 0)無符號說明 說法是不是?有人可以解釋它是如何提前工作的嗎?
是該指令錯了嗎?或者如果「C++」在 這種情況下「C++」嚴格的區別?請解釋。
在這裏,我們有一個直接的值進行比較無符號的變量。在這種情況下編譯器 裏面發生了什麼?
當我們比較無符號值會發生什麼符號值?那麼編譯器會選擇哪些指令,簽名指令或未簽名的指令?
--thanks在advance--
關於文字上的'0',是:6.4.4.1第1段定義了八進制常數:0;八進制常數八進制數字「,所以普通的」0「將是八進制常數而不是十進制數。當然,這不重要。 –