我们正在C,C++和Java的代码库上做一些代码清理,修复有符号/无符号比较,运行静态分析等。
我们收到的警告之一是
warning: ISO C does not permit named variadic macros
和它的配套警告
warning: ISO C99 requires rest arguments to be used
现在,在C代码中,我使用C99 standard variadic macro解决了这个问题,但是在C++代码中,正确答案是什么?使用相同的C99样式会导致不同的警告
warning: anonymous variadic macros were introduced in C99
我看不到任何答案。
我们在Linux上使用的是GCC (G++) 4.4.3。
我希望有一些标志,或其他方法,可以纠正或禁用它的代码的特定部分-但它的日志记录,这是在几乎每个文件中使用…
发布于 2012-03-20 02:03:26
使用gcc选项-Wno-variadic-macros
禁用该特定警告。
编辑:(来自评论)
若要禁用某段代码的警告,但通常将其保留为启用状态,请使用#pragma GCC diagnostic
described here。
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wvariadic-macros"
// Your code and/or include files
// (No variadic warnings here)
#pragma GCC diagnostic pop
https://stackoverflow.com/questions/9775284
复制相似问题