9
#pragma GCC diagnostic push

it pop: warning: expected [error|warning|ignored] after â#pragma GCC diagnosticâ

为什么?我在 Linux 中使用 GCC。

我有一个问题,如果我不能使用pop/push,如果忽略影响编译的cpp,而不影响其他cpp?如果其他一些包括上限,是否影响它?

4

1 回答 1

18

#pragma GCC diagnostic push在 gcc 4.6#pragma GCC diagnostic pop中添加。您使用的是旧版本。

这些 pragma 通常与其他#pragma GCC diagnostic指令结合使用,以仅针对一小部分代码抑制、打开或变成特定于错误的警告。如果它们被忽略,对警告级别的更改将应用​​于源文件的其余部分,而不是仅在下一个#pragma GCC diagnostic pop. 这可能不是问题,也可能是世界末日;您需要了解您的代码才能确定。

无论哪种方式,您都应该更新您的编译器。您不会使用 C89 编译器编译 C99;不要用 gcc 4.4 编译包含 gcc 4.6 的编译指示的代码。

于 2013-05-15T02:23:45.297 回答