什么时候应该使用 #ifdef 而不是 if()?

发布于 2024-12-03 07:38:53 字数 175 浏览 5 评论 0原文

在 Objective-C 中工作时,什么时候适合使用预处理器指令,例如 #ifdef#if#ifndef#define 而不是 if() 等语句switch()

When working in Objective-C, when is it appropriate to use preprocessor directives like
#ifdef, #if, #ifndef, and #define instead of statements like if() and switch()?

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

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

发布评论

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

评论(2

奈何桥上唱咆哮 2024-12-10 07:38:53

像#ifdef 等预处理器指令仅在编译时有效。他们无法在运行时做出决定或循环。它们只是简单地规定哪些内容被编译,哪些内容不被编译。

它们在运行时完全没用。它们服务于完全不同的目的。

Preprocessor directives like #ifdef, etc. are only valid at compile time. They are not able to make decisions or loops at runtime. They simply regulate what gets compiled and what not.

They are totally useless at runtime. They serve a totally different purpose.

柳絮泡泡 2024-12-10 07:38:53

这些都是 C 语言的一部分,这里没有任何特定于 Objective-C 的内容。

大多数时候,在程序逻辑中,您将使用开关、if-else、fors、while 等。这适用于 C、C++、Objective-C 和其他 C 风格语言。

预处理器指令是在编译时评估的,因此只有预处理器/编译器对该逻辑感兴趣。您的实际程序不处理这些问题。除了架构差异、编译时常量、宏等内容之外,您不会过多使用指令。

These are all part of the C language, there's nothing specific to Objective-C here.

Most of the time in your program logic you're going to be using switches, if-elses, fors, whiles, etc. This applies to C, C++, Objective-C and other C-style languages.

Preprocessor directives are evaluated at compile-time, and so only the preprocessor/compiler is interested in that logic. Your actual program doesn't deal with any of this. You're not going to use directives much except for stuff like architecture differences, compile-time constants, macros and so on.

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