今天在除錯乙個程式的時候出現bug,搜尋兩個小時,終於找出,其實bug很幼稚,主要是基礎不紮實
廢話不多說,直接上**
模型是:bool flags = false;
flags |= 0x2;
printf("flags:0x%0x", flags);
以前總以為bool通常就是乙個位元組,和char類似,大部分情況就把它當成只有兩值的char變數用了,其實不然。
總結:bool變數參與運算時,按照運算規則,雙目或三目運算時,通常要將bool轉換成更高精度型別參與運算,但是值只能是0x0或0x1;
bool變數被賦值時(位於=左邊),所有型別都先得轉換成邏輯型別(0x0或0x1)
bool型變數問題詳解
環境linux下 gcc編譯器 include include include int main void length bool 1 a 1 b 0 c 0 d 1 e 1 其實 有了這個例子就對bool有了一定了解。在c語言中沒有bool變數。一般是自己定義 define true 1 defi...
Objective C列印BOOL型變數
有時候我們可能會定義乙個 bool b b yes nslog bool b b 然後執行程式就會崩潰,這是因為 列印的是乙個物件,bool是乙個資料型別。使用 要求對應的引數必須是乙個物件,並且還實現物件的description方法,這樣就可以列印出物件的內容了。nslog其實也就是呼叫該物件的d...
Lua 變數和賦值運算
lua 變數 變數在使用前,必須在 中進行宣告,即建立該變數。編譯程式執行 之前編譯器需要知道如何給語句變數開闢儲存區,用於儲存變數的值。lua 變數有三種型別 全域性變數 區域性變數 表中的域。lua 中的變數全是全域性變數,那怕是語句塊或是函式裡,除非用 local 顯式宣告為區域性變數。區域性...