gcc的編譯選項 -fpermissive,請謹慎使用

 -fpermissive, gcc文檔說明:

Downgrade some diagnostics about nonconformant code from errors to warn-
ings. Thus, using ‘-fpermissive’ allows some nonconforming code to compile.

一旦使用這個選項,可以兼容一些老的語法,但是一些語法錯誤也會被忽略,問題嚴重了!!!

比如: 

下面的代碼沒有sizeof(buf),編譯一樣通過

char buf[512];
snprintf(buf, "%s:%d:%d: %s", source, (int) line, (int) column, desc);
snprintf(buf, sizeof(buf), "%s:%d:%d: %s", source, (int) line, (int) column, desc);


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章