5

在一个项目中,我打开了pedantic警告。但这现在给了我一个关于使用的警告#warning

词法预处理器问题
#warning 是语言扩展

首先,我想知道为什么会发生这种情况以及如何阻止它(不删除#warning)。

4

2 回答 2

8

trojanfoe 回答了为什么会发出问题 (+1)。

发出警告消息的更便携和语言兼容的方式是:

#pragma message("YOUR WARNING HERE")

Clang 将发出一个警告(特别是您在消息中写的那个——而不是迂腐的那个),它出现在 Xcode 的问题中。

于 2014-11-21T08:34:47.627 回答
7

生成它的原因是因为它#warning是对 ISO 标准的扩展,这就是它的意义-pedantic所在。

看起来只有 a#pragma会关闭它,因为没有-Wno-xxx出现可用于语言扩展的标志。

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-pedantic"

#warning blah blah blah

#pragma clang diagnostic pop
于 2012-11-06T14:12:37.303 回答