禁用gcc中的特定警告

禁用gcc中的特定警告,gcc,compiler-warnings,Gcc,Compiler Warnings,在microsoft编译器上,可以使用#pragma禁用特定警告,而不禁用其他警告。如果编译器警告“必须做”的事情,这是一个非常有用的特性 GCC在这一点上有类似的特性吗?这似乎是一个足够明显的功能,无法想象它还没有这个功能,但网上的旧信息表明这个功能并不存在 在GCC中使用什么 具体来说,我喜欢使用多字符常量,比如“abc”。它们作为一个基数256进行有效评估——这是一个非常方便的特性,但它会触发一个警告。在case语句中打开四个字符串非常方便。来自gcc手册: Many options

在microsoft编译器上,可以使用#pragma禁用特定警告,而不禁用其他警告。如果编译器警告“必须做”的事情,这是一个非常有用的特性

GCC在这一点上有类似的特性吗?这似乎是一个足够明显的功能,无法想象它还没有这个功能,但网上的旧信息表明这个功能并不存在

在GCC中使用什么

具体来说,我喜欢使用多字符常量,比如“abc”。它们作为一个基数256进行有效评估——这是一个非常方便的特性,但它会触发一个警告。在case语句中打开四个字符串非常方便。

来自gcc手册:

   Many options have long names starting with -f or with -W---for example,
   -fforce-mem, -fstrength-reduce, -Wformat and so on.  Most of these have
   both positive and negative forms; the negative form of -ffoo would be
   -fno-foo.  This manual documents only one of these two forms, whichever
   one is not the default.

但如果您询问是否存在源代码级警告禁用,我不知道gcc中是否存在该功能。

-Wno multichar

如果使用多字符常量('FOOF'),请勿发出警告。通常它们表示输入错误 用户代码,因为它们具有实现定义的值,不应在中使用 可移植代码


内部源代码编写:

#pragma GCC diagnostic ignored "-Wno-multichar"

// code with  warnings but wont be displayed now...

重复:还值得注意的是,可以使用
#pragma GCC diagnostic push
#pragma GCC diagnostic pop
为少量代码设置诊断。只有一个偶然的堆栈溢出用户提供了一个示例……对我有效的语法是#pragma GCC diagnostic ignored“-Wmultichar”到目前为止,GCC中有pragma