下面一段**會輸出什麼呢?
char c = 0xff;
if (c == 0xff)
printf("successful\n");
else
printf("failed\n");
答案是取決於不同的編譯器設定:
注:gcc可通過新增編譯引數 -fsigned-char/ -funsigned-char來指定編譯器如何識別char同樣的問題也存在與位域(bitfiled)中,詳見-fsigned-bitfields/-funsigned-bitfields引數。
在使用char型別時,根據情況寫清楚unsigned/signed char就ok
unsigned char c = 0xff
if (c == 0xff)
printf("successful\n");
else
printf("failed\n");
含糊不清如何干擾人腦的判斷
一項新的研究顯示,人類的大腦在被迫根據極少甚至互相矛盾的證據做出決定時往往感情用事且不合邏輯。這種型別的選擇被稱為含糊決定,與冒險決定不同。在冒險決定中,人對其選擇會帶來什麼樣的結果並不確定,但知道存在成功的可能性。在含糊決定中,人對這兩點全然不了解。加利福尼亞理工學院經濟學家 這項研究的主要參與者...
C語言的位域和符號位擴充套件
最近面試易路聯動的時候考了位域方面的只是,結果全做錯了,回來想了會也沒弄明白,後來上網查了下原來是英特爾的面試題 如下 答案為 1,0,1,4 t.b 1很好理解,t.a和t.c等於 1就不大好理解了,這個就關係到資料型別與資料在計算機中的表示了,因為顯示的時候指定的是 d型別的,那麼說明將引數當成...
C語言深度擴充套件 2 符號的技巧(上)
初探注釋規則 由程式及結果分析發現 y x p是什麼意思?作者本意 把 x 除以 p 的結果賦值給 y 編譯器 將 作為一段注釋開始,把 後的內容都當成注釋內容,直到 出現為止 在編譯器看來,注釋和其它程式元素都是平等的,可以在 與 之間新增空格,所以,作為程式設計師也不能看輕注釋。注釋注意 注釋應...