抑制:"#warning是语言扩展"

rjs*_*ing 4 xcode warnings clang c-preprocessor

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

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

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

jus*_*tin 7

特洛伊福福回答了问题的原因(+1).

一种更便于携带且符合语言的方式来发出警告信息:

#pragma message("YOUR WARNING HERE")
Run Code Online (Sandbox Code Playgroud)

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


tro*_*foe 6

它产生的原因是因为它#warning是ISO标准的扩展,而这正是它的意义-pedantic所在.

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

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

#warning blah blah blah

#pragma clang diagnostic pop
Run Code Online (Sandbox Code Playgroud)