在 Microsoft 编译器上,可以使用 #pragma 禁用特定警告,而不禁用其他警告。如果编译器警告“必须完成”的事情,这是一个非常有用的功能。
此时的 GCC 是否有类似的功能?这似乎是一个足够明显的功能,无法想象它还没有这个功能,但网络上的旧信息表明这个功能不存在。
在 GCC 中使用什么?
具体来说,我喜欢使用多字符常量,例如“abc”。这些有效地评估为一个基数 256 数字 - 一个非常方便的功能,但它会触发警告。在 case 语句中切换四个字符串非常方便。
在 Microsoft 编译器上,可以使用 #pragma 禁用特定警告,而不禁用其他警告。如果编译器警告“必须完成”的事情,这是一个非常有用的功能。
此时的 GCC 是否有类似的功能?这似乎是一个足够明显的功能,无法想象它还没有这个功能,但网络上的旧信息表明这个功能不存在。
在 GCC 中使用什么?
具体来说,我喜欢使用多字符常量,例如“abc”。这些有效地评估为一个基数 256 数字 - 一个非常方便的功能,但它会触发警告。在 case 语句中切换四个字符串非常方便。
从 GCC 手册:
许多选项都有以 -f 或 -W 开头的长名称——例如,-fforce-mem、-fstrength-reduce、-Wformat 等。其中大部分既有正面形式也有负面形式;-ffoo 的否定形式是 -fno-foo。本手册仅记录这两种形式中的一种,以非默认形式为准。
但是,如果您询问是否有源级警告禁用,我不知道 GCC 中是否存在该功能。
在源代码中,编写:
#pragma GCC diagnostic ignored "-Wno-multichar"
// Code with warnings, but they won’t be displayed now...