-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);