我嘗試了較舊的帖子,但無法理解以下行爲。
https://stackoverflow.com/questions/12295168/c-signed-unsigned-mismatch
unsigned int and signed char comparison未簽名並在C中籤名的行爲
#define T long
int main()
{
unsigned T a;
T b;
a=1;
b=-1;
if(a>b)
printf("True\n");
else
printf("False\n");
return 0;
}
我試圖上述T代碼=炭,短整型,長。
char和short的觀察輸出爲TRUE,而int和long的觀察輸出爲FALSE。我在Ubuntu gcc中嘗試了上面的代碼。
任何人都可以解釋,爲什麼我得到不同的數據類型的輸出?
重複數百次以上。你不瞭解你連接的問題的答案嗎? –
請不要僅因爲它是重複的才能投票這個問題。與其他問題相比,這個問題其實寫得很好。 –
我可以參考你[這](http://stackoverflow.com/questions/17312545/type-conversion-unsigned-to-signed-int-char/17312760#17312760)鏈接? – Nobilis