2
#define SUPPRESS(w) _Pragma("GCC diagnostic ignored " ## w)
SUPPRESS("-Wuseless-cast")
int main() {
int a = (int)4;
return a;
}
这里的错误:
error: pasting ""GCC diagnostic ignored "" and ""-Wuseless-cast"" does not give a valid preprocessing token
我怎样才能得到它的工作?
根据[翻译阶段](http://en.cppreference.com/w/cpp/language/translation_phases)处理'_Pragma'指令,您可能可能依赖标准连续字符串级联。这意味着如果你有两个字符串常量,它们之间只有空格(或注释),那么它们将自动连接成一个字符串。如果是这样,那么你不需要预处理器连接运算符。你可能想尝试一下。 –
@Someprogrammerdude喜欢'''_Pragma(“忽略GCC诊断”w)'''?不起作用。您也可以尝试使用我提供的在线编译器链接。 – onqtam