在Objective-C中工作時,什麼時候適合使用預處理指令一樣 #ifdef
,#if
,#ifndef
和#define
而不是像if()
和switch()
報表?什麼時候應該使用#ifdef而不是if()?
0
A
回答
4
像#ifdef
等預處理指令只在編譯時有效。他們無法在運行時做出決定或循環。他們只是簡單地規定了編譯的內容,而不是。
它們在運行時完全沒用。他們服務於完全不同的目的。
+0
它們通常用於什麼目的? – geminiCoder
+0
我一直在玩他們我現在明白你的意思。感謝您爲我清理它。 – geminiCoder
2
這些都是C語言的一部分,這裏沒有什麼特定的Objective-C。
大部分時間在你的程序邏輯中,你將要使用開關,if-elses,fors,whiles等。這適用於C,C++,Objective-C和其他C風格的語言。
預處理器指令是在編譯時計算的,所以只有預處理器/編譯器對該邏輯感興趣。你的實際程序不涉及這些。除了像架構差異,編譯時常量,宏等東西外,你不會使用指令。
相關問題
- 1. 什麼時候應該使用AWS,什麼時候不使用
- 2. 什麼時候應該使用async/await,什麼時候不用?
- 3. 什麼時候應該使用INNER-LOOP-JOIN而不是INNER JOIN
- 4. 什麼時候應該使用susy-media而不是susy-breakpoint
- 5. 什麼時候應該使用double而不是小數?
- 6. 什麼時候應該使用UIImagePickerControllerSourceTypePhotoLibrary而不是UIImagePickerControllerSourceTypeSavedPhotosAlbum?
- 7. Python:什麼時候應該使用subprocess.Popen而不是os.popen?
- 8. 什麼時候應該使用ThreadLocal而不是Thread.SetData/Thread.GetData?
- 9. Python:什麼時候應該使用子類而不是方法?
- 10. 什麼時候應該使用fputs而不是fprintf?
- 11. 什麼時候應該使用字符串而不是stringstream?
- 12. 什麼時候應該使用宏而不是內聯函數?
- 13. 什麼時候應該使用的NSKeyedArchiver,而不是SQLite的?
- 14. 什麼時候應該使用angular.component而不是angular.directive?
- 15. Swift:我應該什麼時候使用「var」而不是「let」?
- 16. 什麼時候應該使用Task.Run()而不是等待?
- 17. 什麼時候應該使用Map而不是For循環?
- 18. 什麼時候應該使用UserControl而不是Page?
- 19. 什麼時候應該使用組件而不是指令?
- 20. 什麼時候應該使用ReBuild而不是Build?
- 21. 什麼時候應該使用reg而不是電線?
- 22. 什麼時候應該使用IBOutlet而不是IBAction?
- 23. 什麼時候應該使用OpenStruct而不是哈希?
- 24. 什麼時候應該使用Regex而不是String.IndexOf()?或String.Contains()?
- 25. 什麼時候應該使用HStoreField而不是JSONField?
- 26. 什麼時候應該使用會話變量而不是cookie?
- 27. 什麼是phtml,什麼時候應該使用.phtml擴展名而不是.php?
- 28. 什麼時候應該使用sed,什麼時候應該使用awk
- 29. 什麼時候應該使用memcpy,什麼時候應該使用memmove?
- 30. 什麼時候應該使用Import-Package,什麼時候應該使用Require-Bundle?
爲了澄清,你問的編譯時和運行時的「分支」之間的區別? – Richard
euh,這兩件事情完全不同,所以我猜你應該先讀一本關於客觀c的書! –
沒有使用其中一種的優點和缺點。 「與...相反」是沒有道理的,因爲它們沒有任何關係。 – Marlon