gpt4 book ai didi

c++ - 清理 C/C++ 代码揭示可变参数宏的问题

转载 作者:可可西里 更新时间:2023-11-01 15:09:18 26 4
gpt4 key购买 nike

我们正在对 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。

我希望有一些标志或其他方法可以针对特定代码部分更正或禁用它 - 但它用于几乎每个文件中使用的日志记录...

最佳答案

使用 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

关于c++ - 清理 C/C++ 代码揭示可变参数宏的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9775284/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com