如何触发有关 #if 处未定义符号的 C 预处理器错误? (LLVM/CLang/Xcode)

发布于 2024-09-25 19:04:22 字数 291 浏览 1 评论 0原文

如何触发有关 #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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

始于初秋 2024-10-02 19:04:22

如果未定义特定符号,听起来您想引发错误。如果是这样,则只需使用 #error 预处理器指令

#ifndef AAAAA
#error Some Message
#endif

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

#ifndef AAAAA
#error Some Message
#endif
听风吹 2024-10-02 19:04:22

如果您想让编译器为您检查这一点,而不需要重写代码,您可以使用 -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).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文