如何判断编译器当前处于ARC模式?

发布于 2024-12-27 04:11:39 字数 152 浏览 1 评论 0原文

我有几个内联静态 C 函数。我调用 Objective-C 代码,包括 [-release]

问题是我必须编译 ARC 或非 ARC 目标的代码。所以我想我需要通过预定义的编译器标志进行条件编译。我应该为此使用什么标志?

I have several inline static C functions. And I call Objective-C codes including [-release].

The problem is I have to compile this code both of ARC or non-ARC targets. So I think I need conditional compilation by predefined compiler flag. What flag should I use for this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

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

发布评论

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

评论(1

蓦然回首 2025-01-03 04:11:39

来自 http://lists.apple.com/archives/xcode-用户/2011/Aug/msg00252.html

LLVM 编译器的检查称为__has_feature。 ARC 是其中之一
您可以检查的功能。

<前><代码>#ifndef __has_feature
// 不是 LLVM 编译器
#define __has_feature(x) 0
#endif

#if __has_feature(objc_arc)
// 使用 ARC 编译
#别的
// 不使用 ARC 进行编译
#endif

From http://lists.apple.com/archives/xcode-users/2011/Aug/msg00252.html:

The LLVM Compiler's checks are called __has_feature. ARC is one of the
features you can check for.

#ifndef __has_feature
// not LLVM Compiler
#define __has_feature(x) 0
#endif

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