2011-09-05 70 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風格的語言。

預處理器指令是在編譯時計算的,所以只有預處理器/編譯器對該邏輯感興趣。你的實際程序不涉及這些。除了像架構差異,編譯時常量,宏等東西外,你不會使用指令。

相關問題