禁用gcc中的特定警告

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

GCC在这一点上是否有类似的function? 这似乎是一个足够明显的function,它是不可能的,它不会有这个function,但networking上的旧信息表明这个function不存在。

在GCC中使用什么?

具体来说,我喜欢使用多字符常量,比如'abc'。 这些评估有效地作为一个基地256号码 – 一个非常方便的function,但它会触发警告。 它非常方便在一个case语句中切换四个string。

这可以用gcc的诊断编译指示来完成。

从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. 

但是,如果你问是否有源代码级警告禁用,我不知道如果该function存在于gcc。

-Wno-multichar

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

更多信息 。

内部源代码编写:

 #pragma GCC diagnostic ignored "-Wno-multichar" // code with warnings but wont be displayed now...