Egor00f Asked:2024-09-05 21:18:05 +0800 CST2024-09-05 21:18:05 +0800 CST 2024-09-05 21:18:05 +0800 CST 使用 -Wold-style-cast 标志连接 C++ 头文件 772 由于-Wold-style-cast,编译器会抱怨(其中定义了许多内联函数),但制作普通的 plus 文件或将函数传输到 .c 不是一个选项。 可以采取什么措施来防止编译器抛出警告? c++ 1 个回答 Voted Best Answer αλεχολυτ 2024-09-06T00:44:13+08:002024-09-06T00:44:13+08:00 正如评论中所指出的,将有问题的代码包装在适当的诊断代码#pragma中就足够了: int main() { #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wold-style-cast" int* i = (int*)0; // нет предупреждения #pragma GCC diagnostic pop int* p = (int*)0; // есть предупреждение (void)i; (void)p; } 对于头文件,您可以将文件的整个正文包装在这些编译指示中,也可以仅将通过#include. (void)i有趣的是,对于用于抑制有关未使用变量的警告的形式的类型,即使在编译指示块之外也不会显示诊断信息。
正如评论中所指出的,将有问题的代码包装在适当的诊断代码
#pragma
中就足够了:对于头文件,您可以将文件的整个正文包装在这些编译指示中,也可以仅将通过
#include
.(void)i
有趣的是,对于用于抑制有关未使用变量的警告的形式的类型,即使在编译指示块之外也不会显示诊断信息。