在Microsoft编译器上,可以使用#pragma禁用特定警告,而不禁用其他警告.如果编译器警告"必须完成"的事情,这是一个非常有用的功能.
GCC此时是否有类似功能?这似乎是一个显而易见的功能,它无法想象它还没有这个功能,但网上的旧信息表明这个功能不存在.
在GCC中使用什么?
具体来说,我喜欢使用多字符常量,比如'abc'.这些有效地评估为基数256 - 这是一个非常方便的功能,但它会触发警告.它非常便于在case语句中切换四个字符串.
#include <iostream> gfhgfhgf
using namespace std;
int main() {
return 0;
}
Run Code Online (Sandbox Code Playgroud)
为什么这段代码片段会被编译?根据包含语法的gcc参考:
如果文件名后面的行上有任何内容(注释除外),则会出错.
而这正是代码中正在做的事情.