首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >清理C/C++代码会揭示各种宏的问题

清理C/C++代码会揭示各种宏的问题
EN

Stack Overflow用户
提问于 2012-03-20 01:54:26
回答 1查看 10K关注 0票数 13

我们正在C,C++和Java的代码库上做一些代码清理,修复有符号/无符号比较,运行静态分析等。

我们收到的警告之一是

代码语言:javascript
运行
复制
warning: ISO C does not permit named variadic macros

和它的配套警告

代码语言:javascript
运行
复制
warning: ISO C99 requires rest arguments to be used

现在,在C代码中,我使用C99 standard variadic macro解决了这个问题,但是在C++代码中,正确答案是什么?使用相同的C99样式会导致不同的警告

代码语言:javascript
运行
复制
warning: anonymous variadic macros were introduced in C99 

我看不到任何答案。

我们在Linux上使用的是GCC (G++) 4.4.3。

我希望有一些标志,或其他方法,可以纠正或禁用它的代码的特定部分-但它的日志记录,这是在几乎每个文件中使用…

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-20 02:03:26

使用gcc选项-Wno-variadic-macros禁用该特定警告。

编辑:(来自评论)

若要禁用某段代码的警告,但通常将其保留为启用状态,请使用#pragma GCC diagnostic described here

代码语言:javascript
运行
复制
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wvariadic-macros"

    // Your code and/or include files
    // (No variadic warnings here)

#pragma GCC diagnostic pop
票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9775284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档