如何触发有关 #if 处未定义符号的 C 预处理器错误? (LLVM/CLang/Xcode)
如何触发有关 #if 处缺少定义的 C 预处理器错误? 我正在使用 LLVM/Clang/Xcode。
这段代码有效。
#define AAAAA 1
#if AAAAA
#endif
我预计这段代码将是未定义符号的错误。
//#define AAAAA 1 Removed definition.
#if AAAAA
#endif
但事实并非如此。这是标准/常规行为吗?还有其他方法可以触发预处理器错误吗?
How to trigger C-preprocessor error about missing definition at #if?
I'm using LLVM/Clang/Xcode.
This code works.
#define AAAAA 1
#if AAAAA
#endif
And I expected this code will be an error for undefined symbol.
//#define AAAAA 1 Removed definition.
#if AAAAA
#endif
But it did not. Is this standard/regular behavior? And is there other way to triggering preprocessor error?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果未定义特定符号,听起来您想引发错误。如果是这样,则只需使用
#error
预处理器指令It sounds like you want to raise an error if a particular symbol is not defined. If so then just use the
#error
preprocessor directive如果您想让编译器为您检查这一点,而不需要重写代码,您可以使用
-Wundef
开关,如文档此处。在 Xcode 项目中的 TARGETS / YourTarget / Build Settings 下,将
-Wundef
添加到“其他警告标志”(也称为WARNING_CFLAGS
)。If you want to let the compiler check this for you, without rewriting your code, you can use the
-Wundef
switch as documented here.In your Xcode project under TARGETS / YourTarget / Build Settings, add
-Wundef
to "Other Warning Flags" (aka.WARNING_CFLAGS
).