Pet*_*org 11 c c++ macros c99 variadic-macros
我们在C,C++和Java的代码库上进行了一些代码清理,修复了有符号/无符号比较,运行静态分析等.
我们得到的警告之一是
warning: ISO C does not permit named variadic macros
Run Code Online (Sandbox Code Playgroud)
和它的同伴警告
warning: ISO C99 requires rest arguments to be used
Run Code Online (Sandbox Code Playgroud)
现在,在C代码中我使用C99标准可变参数宏来解决问题,但在C++代码中,正确的答案是什么?使用相同的C99样式会产生不同的警告
warning: anonymous variadic macros were introduced in C99
Run Code Online (Sandbox Code Playgroud)
我没有看到任何答案.
我们在Linux中使用GCC(G ++)4.4.3.
我希望有一些标志或其他方法可以纠正或禁用它的特定代码部分 - 但它用于几乎每个文件中使用的日志...
Dre*_*ann 14
使用gcc选项-Wno-variadic-macros禁用该特定警告.
编辑:(来自评论)
要禁用某段代码的警告但通常将其保留,请使用#pragma GCC diagnostic 此处所述.
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wno-variadic-macros"
// Your code and/or include files
// (No variadic warnings here)
#pragma GCC diagnostic pop
Run Code Online (Sandbox Code Playgroud)