1
考慮下面的代碼片斷:爲什麼GCC不會生成分辨率丟失警告?
long long someVar64 = 0LL;
int someVar32 = someVar64;
在情況下,它不是很明顯,有在該64位值被分配給一個32位的值,從而產生比特損失這裏有一個潛在錯誤。在這種情況下,這很好,因爲我們不關心0的高位,但如果我改變常數,我可以很容易地創建一個錯誤。
爲什麼GCC(4.4.3)不會爲此代碼生成警告?我記得以前的舊版本。
你嘗試明確啓用此警告'-Wconversion'? –
你沒有指定你用來調用GCC的標誌,但至少你應該使用'-Wall'作爲起點。 –