首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何禁用特定的未知#杂注警告(GCC和/或Clang)

如何禁用特定的未知#杂注警告(GCC和/或Clang)
EN

Stack Overflow用户
提问于 2011-07-02 20:41:18
回答 1查看 30.4K关注 0票数 28

我知道如何禁用所有未知的#杂注警告。例如,答案是在中给出的。

有没有办法为某个特定的编译指示禁用“未知编译指示”警告?例如,如果我禁用#pragma ugubugu的警告,则使用以下代码:

代码语言:javascript
复制
#pragma ugubugu
#pragma untiunti

int main() {return 0;}

当使用以下任一方式编译时:

代码语言:javascript
复制
g++ pragma.cpp -Wall
clang++ pragma.cpp -Wall

应该会产生一个警告:

代码语言:javascript
复制
warning: ignoring #pragma untiunti

例如,有没有一种简单的方法来注册一个自定义杂注,而不做任何事情呢?

如果知道Visual Studio是否也有这样的选项,那就太好了,但这并不重要。

“但是,为什么他最终要玩自定义语用呢?”

我的源代码是由两个编译器解析的。在其中一个中,有一个特殊的#pragma是另一个未知的。当然,我可能会在#pragma的每个实例中都放入#ifdef COMPILER_IDENTIFICATION_MACRO ... #endif,但这样做会很麻烦。

EN

回答 1

Stack Overflow用户

发布于 2017-09-29 11:19:12

我假设您想禁用编译指示警告,因为它在一个平台上是有效的,但在另一个平台上是无效的。如果是这种情况,您可以使用宏来选择性地启用编译指示,从而消除禁止显示警告的需要。

例如,如果只想在可视C++上使用杂注,则可以执行以下操作:

代码语言:javascript
复制
#if defined(_MSC_VER)
#    define SAFE_PRAGMA_UGUBUGU __pragma(ugubugu)
#else
#    define SAFE_PRAGMA_UGUBUGU 
#endif

然后,你就可以写

代码语言:javascript
复制
SAFE_PRAGMA_UGUBUGU
#pragma untiunti   
int main() {return 0;}
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6557042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档