Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
清理C/C++;代码揭示了可变宏的问题 我们正在对C、C++和java的代码库进行一些代码清理、固定签名/无符号比较、运行静态分析等。_C++_C_Macros_C99_Variadic Macros - Fatal编程技术网

清理C/C++;代码揭示了可变宏的问题 我们正在对C、C++和java的代码库进行一些代码清理、固定签名/无符号比较、运行静态分析等。

清理C/C++;代码揭示了可变宏的问题 我们正在对C、C++和java的代码库进行一些代码清理、固定签名/无符号比较、运行静态分析等。,c++,c,macros,c99,variadic-macros,C++,C,Macros,C99,Variadic Macros,我们得到的警告之一是 warning: ISO C does not permit named variadic macros 以及随之而来的警告 warning: ISO C99 requires rest arguments to be used 现在,在C代码中,我用这个方法来修复这个问题,但是在C++代码中,什么是正确答案?使用相同的C99样式会导致不同的警告 warning: anonymous variadic macros were introduced in C99 我看

我们得到的警告之一是

warning: ISO C does not permit named variadic macros
以及随之而来的警告

warning: ISO C99 requires rest arguments to be used
现在,在C代码中,我用这个方法来修复这个问题,但是在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诊断推送
#pragma GCC诊断被忽略“-wVariatic宏”
//您的代码和/或包含文件
//(此处没有可变警告)
#pragma-GCC-diagnostic-pop

可能重复使用C++11。在GCC命令行中键入
-std=c++0x
-std=c++11
。或者忽略了警告。是的,使用C++ 11还没有被完全认可,但它的支持还不够好,所以你基本上说“波波佩森没有办法消除警告(不关它们),因为在C++中11个变量不是标准的,直到C++ 11。@ Petri -我现在没有任何其他的方法。GCC 4.4.3可能不知道C++的最新更改。有没有办法禁用一段代码的警告,但一般来说还是保留它?如果我使用这个,我如何禁用
警告:ISO C99要求使用rest参数
@Petriborg:Thank@Hasturkun我会尝试在臭名昭著的旧gcc-4.2.3中pragma对我不起作用,但是-Wno变量宏起作用,所以投票通过。pragma对我也不起作用,但我通过
使它起作用“-w可变宏”
(不带
否-