抑制:“#warning是语言扩展”

时间:2012-11-06 13:37:20

标签: xcode clang c-preprocessor warnings

项目中,我已启用pedantic警告。但现在这给了我关于使用#warning

的警告
  

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

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

2 个答案:

答案 0 :(得分:7)

trojanfoe回答了问题的原因(+1)。

发布警告信息的更便携且符合语言的方式是:

#pragma message("YOUR WARNING HERE")

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

答案 1 :(得分:6)

生成它的原因是因为#warning是ISO标准的扩展,而-pedantic就是{。}}。

看起来只有#pragma会将其关闭,因为没有-Wno-xxx标记可用于语言扩展。

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

#warning blah blah blah

#pragma clang diagnostic pop