2011-09-05 100 views
0

在Objective-C中工作时,什么时候适合使用预处理指令一样 #ifdef#if#ifndef#define而不是像if()switch()报表?什么时候应该使用#ifdef而不是if()?

+0

为了澄清,你问的编译时和运行时的“分支”之间的区别? – Richard

+0

euh,这两件事情完全不同,所以我猜你应该先读一本关于客观c的书! –

+3

没有使用其中一种的优点和缺点。 “与...相反”是没有道理的,因为它们没有任何关系。 – Marlon

回答

4

#ifdef等预处理指令只在编译时有效。他们无法在运行时做出决定或循环。他们只是简单地规定了编译的内容,而不是。

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

+0

它们通常用于什么目的? – geminiCoder

+0

我一直在玩他们我现在明白你的意思。感谢您为我清理它。 – geminiCoder

2

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

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

预处理器指令是在编译时计算的,所以只有预处理器/编译器对该逻辑感兴趣。你的实际程序不涉及这些。除了像架构差异,编译时常量,宏等东西外,你不会使用指令。

相关问题