为什么在 GCC/C++ 中"pragma GCC diagnostic push"弹出警告?

Why "pragma GCC diagnostic push" pop warning in GCC/C++?

本文关键字:GCC push 警告 diagnostic pragma C++ 为什么      更新时间:2023-10-16
#pragma GCC diagnostic push
it pop: warning: expected [error|warning|ignored] after â#pragma GCC diagnosticâ

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

我有一个问题,如果我不能使用pop/push,如果忽略只有影响编译的cpp,不影响其他cpp?如果其他的包括帽,会影响它吗?

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

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

不管怎样,你都应该更新你的编译器。你不会用C89编译器编译C99;不要在GCC 4.4中编译包含GCC 4.6 pragmas的代码