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

时间:2011-09-05 17:39:27

标签: ios objective-c c-preprocessor

在Objective-C中工作时,何时使用预处理程序指令是合适的 #ifdef#if#ifndef#define代替if()switch()等语句?

2 个答案:

答案 0 :(得分:4)

#ifdef之类的预处理程序指令仅在编译时有效。他们无法在运行时做出决策或循环。它们只是简单地规定了编译的内容和不编译的内容。

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

答案 1 :(得分:2)

这些都是C语言的一部分,这里没有具体的Objective-C。

在程序逻辑中,大多数情况下你将使用开关,if-elses,fors,whiles等。这适用于C,C ++,Objective-C和其他C风格的语言。

预编译器指令在编译时进行评估,因此只有预处理器/编译器才对该逻辑感兴趣。您的实际程序不处理任何此类问题。除了体系结构差异,编译时常量,宏等等之外,你不会使用指令。