![](/img/trans.png)
[英]How to suppress GCC variadic macro argument warning for zero arguments for a particular macro definition within a source file
[英]GCC compiler warning flag for zero variadic macro arguments
GCC 中零可變參數宏參數的編譯器警告標志是什么(我使用的是 GCC 5.3.0)?
警告是由這樣的代碼觸發的
// for illustration purposes only:
int foo(int i) { return 0; };
#define FOO(A, ...) foo(A, ##__VA_ARGS__)
FOO(1);
^ warning: ISO C++11 requires at least one argument for the "..." in a variadic macro
但警告並未指示使用哪個標志來啟用/禁用警告(這通常顯示在方括號[-Wwarning-flag-name]
)。
在 clang 中它是-Wgnu-zero-variadic-macro-arguments
。 我在gcc-5.3.0的警告文檔中找不到類似的東西。
我試過-Wgnu-zero-variadic-macro-arguments
, -Wvarargs
, -Wno-variadic-macros
(感謝@ Revolver_Ocelot),但這些都不負責這個警告。
導致問題的警告標志是-Wpedantic
。 這是因為省略可變參數是非法的,需要進行診斷。 警告滿足該要求。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.