清理C/C++代码揭示了可变宏的问题
Cleaning up C/C++ code reveals problems with variadic macros
我们正在C、C++和Java的代码库上进行一些代码清理、修复有符号/无符号比较、运行静态分析等。
我们收到的警告之一是
warning: ISO C does not permit named variadic macros
及其配套警告
warning: ISO C99 requires rest arguments to be used
现在,在C代码中,我使用了C99标准可变宏来解决这个问题,但在C++代码中,正确的答案是什么?使用相同的C99型号会产生不同的警告
warning: anonymous variadic macros were introduced in C99
对此,我看不到任何答案。
我们在Linux中使用GCC(G++)4.4.3。
我希望有一些标志或其他方法可以纠正或禁用代码的特定部分,但它适用于几乎每个文件中使用的日志记录。。。
使用gcc选项-Wno-variadic-macros
禁用该特定警告。
编辑:(来自评论)
要禁用代码段的警告,但通常保持打开状态,请使用此处描述的#pragma GCC diagnostic
。
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wvariadic-macros"
// Your code and/or include files
// (No variadic warnings here)
#pragma GCC diagnostic pop
相关文章:
- 警告处理为错误这里有什么问题
- 最小硬币更换问题(自上而下方法)
- 为"adjacent"变量赋值时出现问题
- 我的神经网络不起作用 [XOR 问题]
- 在Ubuntu 16.04上安装Cilk时出现问题
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 编译包含字符串的代码时遇到问题
- Project Euler问题4的错误解决方案
- 问题:什么是QAbstractItemView::NoEditTriggers的反面
- 在编译C++代码(具有dlib和opencv)到WASM时面临问题
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- 静态数据成员的问题-修复链接错误会导致编译器错误
- C++ 雷神库 - 使用资源加载器类时出现问题(不命名类型)
- 一个关于在C++中重载布尔运算符的问题
- 首要问题的答案让值班员搞错了
- setlocale的C++土耳其字符串问题
- 如何重构类层次结构以避免菱形问题
- 基于boost的程序的静态链接——zlib问题
- C++格式化输出问题
- 使用mongocxx驱动程序时包含头文件问题