1
我想編譯一個簡單的code gcc和clang。 gcc會爲無法比較的投射產生警告(太棒了!)。然而,鐺沒有產生任何警告!我已通過兩個相同的論點:爲什麼Clang不會爲不兼容的演員生成任何警告?
cc -Wall -Wextra tmp3.c
gcc -Wall -Wextra tmp3.c
我是否通過所有必要的選項來叮噹編譯器或缺少的東西?叮噹documentation不是一個很好的幫助!
代碼:
int main(void)
{
void *b = (void *)0x12345678;
int a = (int)(unsigned long)b;
int c = (int)b;
return a + c;
}
鏘版本3.8
爲什麼_expect_ clang發出警告? – Siguza
找到你可能不知道的警告的最好方法是'-Weverything'。這個選項(不幸的是,只能在Clang上使用)會逐字打開每一個警告。你說得對,文檔不是非常有幫助。 –
@Siguza:爲什麼不呢?對於任何編程語言,這是任何編譯器中最基本的東西 - 警告不兼容的轉換! – DJJ