【问题标题】:When should I use #ifdef instead of if()? [closed]什么时候应该使用 #ifdef 而不是 if()? [关闭]
【发布时间】:2011-09-05 17:39:27
【问题描述】:

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

【问题讨论】:

  • 澄清一下,您是在问编译时和运行时“分支”之间的区别?
  • 呃,这两件事完全不同,所以我想你应该先去看一本关于目标c的书!
  • 使用其中一种没有优缺点。 “与...相对”没有任何意义,因为它们没有任何关系。

标签: ios objective-c c-preprocessor


【解决方案1】:

#ifdef 等预处理器指令仅在编译时有效。他们无法在运行时做出决策或循环。他们只是规范什么被编译,什么不被编译。

它们在运行时完全没用。它们的用途完全不同。

【讨论】:

  • 它们一般用于什么目的?
  • 我一直在和他们一起玩,我现在明白你的意思了。谢谢你帮我清理。
【解决方案2】:

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

在您的程序逻辑中,大部分时间您将使用开关、if-elses、fors、while 等。这适用于 C、C++、Objective-C 和其他 C 风格的语言。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-11
    • 1970-01-01
    • 2017-09-11
    • 2020-01-13
    • 2013-04-06
    • 2012-12-23
    • 2021-07-13
    • 2022-01-02
    相关资源
    最近更新 更多