是否有一个通用的取消警告,我可以使用?抑制在多个编译器警告建立
的问题是,有次我可以生成使用一个版本的编译器(GCC),然后我有一个使用一些常见的事情,但使用不同的编译器的合作伙伴。所以警告#是不同的。
SUPPRESS_WARNING_BEGIN(NEVER_USED)
//code
SUPPRESS_WARNING_END
那么该文件将有类似::
#if COMPILER_A
NEVER_USED = 245
#endif
#if COMPILER_B
NEVER_USED = 332
#endif
#define SUPPRESS_WARNING_BEGIN(x)/
#if COMPILER_A
//Compiler A suppress warning x
#endif
#if COMPILER_B
//Compiler B suppress warning x
#endif
#define SUPPRESS_WARNING_END/
#if COMPILER_A
// END Compiler A suppress warning
#endif
#if COMPILER_B
// END Compiler A suppress warning
#endif
我能想到这样做是做在一个文件中定义一个宏,我会通过一些通用的价值的唯一途径
不知道如果有一个更简单的方法?另外我知道理想情况下我们都会使用相同的编译器,但不幸的是这不是一个选项。只是试图找到最简单的方法来支持这样的事情,并希望上面提到的一种更简单的方法。
谢谢
我认为最简单的方法是编写代码,不会产生:-) – sidyll
打压警告会在编译时禁用它们最简单的方法任何警告(如放下'-Wall'和gcc的朋友)。海湾合作委员会还允许你通过'#编译指示'来转向特定的警告。但是,不同的编译器对不同的事情发出警告也可能是一个优势,因为您可以修复代码*以解决多个问题,而不会对剩余的良性警告产生太大压力。 –
PP代码无效。你不能在定义里有'#'。 – Pubby