我正在編譯C++代碼,我想啓用-pedantic選項。
我使用GCC 4.0,在Mac OS X Leopard上運行Xcode。
例如,可以允許使用-pedantic(使用-Wno-variadic-macros和-Wno-long-long)時通常禁止的可變宏和long long
類型。 但我找不到任何東西來禁用「逗號在枚舉器列表末尾」的警告。
可能嗎?GCC:使用-pedantic時是否可以禁用「枚舉器列表末尾的逗號」警告?
謝謝。
我正在編譯C++代碼,我想啓用-pedantic選項。
我使用GCC 4.0,在Mac OS X Leopard上運行Xcode。
例如,可以允許使用-pedantic(使用-Wno-variadic-macros和-Wno-long-long)時通常禁止的可變宏和long long
類型。 但我找不到任何東西來禁用「逗號在枚舉器列表末尾」的警告。
可能嗎?GCC:使用-pedantic時是否可以禁用「枚舉器列表末尾的逗號」警告?
謝謝。
在枚舉結束逗號是有效的C99但不是在C89,所以下面的工作提供你的代碼是有效的C99
gcc -std=c99 -pedantic foo.c
我相當肯定,它不是有效的C++ (根據克++)在所有
編輯:在HP-UX與GCC 4.2.1測試這一點,它沒有錯誤/警告工作 foo.c的
int main(int argc, char** argv) {
enum { A, B, };
return 0;
}
gcc -std=c99 -pedantic foo.c
在C++中它是儘管它在C++ 11中是合法的,但還不可能將其禁用。 因此,在未來,當GCC得到糾正時,-std = C++ 11應該禁用它。
-std = c99僅適用於C,而不適用於C++(如問題中所述)。
事實上,當使用「-std = c89」時我會收到警告。當使用「-std = 99」時不會發出警告。但是如果我把foo.c變成foo.cpp,我會得到一個錯誤。這是我的問題...... – Guillaume 2009-06-17 07:35:09
如果它是.c文件,那麼GCC使用C編譯器。如果它是.cc或.cpp文件,GCC使用C++編譯器。你的代碼不是合法的C++,因此是錯誤。 – Glen 2009-06-17 12:22:53