在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. 什么时候应该使用fputs而不是fprintf?
- 3. 什么时候应该使用Map而不是For循环?
- 4. 什么时候应该使用HStoreField而不是JSONField?
- 5. 什么时候应该使用Regex而不是String.IndexOf()?或String.Contains()?
- 6. Swift:我应该什么时候使用“var”而不是“let”?
- 7. Python:什么时候应该使用subprocess.Popen而不是os.popen?
- 8. 什么时候应该使用会话变量而不是cookie?
- 9. 什么时候应该使用宏而不是内联函数?
- 10. 什么时候应该使用ReBuild而不是Build?
- 11. 什么时候应该使用UserControl而不是Page?
- 12. 什么时候应该使用的NSKeyedArchiver,而不是SQLite的?
- 13. 什么是phtml,什么时候应该使用.phtml扩展名而不是.php?
- 14. 什么时候应该使用Import-Package,什么时候应该使用Require-Bundle?
- 15. 什么时候应该使用消息合约而不是DataContract,为什么?
- 16. 什么时候应该使用逻辑应用程序而不是Web作业?
- 17. 什么时候应该使用if(!someVar)vs assert()?
- 18. 什么时候应该选择nHibernate而不是其他ORM?
- 19. 什么时候应该使用datagrid,何时应该使用datagridview?
- 20. 什么时候应该使用$(object),何时应该使用$ object?
- 21. 什么时候应该使用let {},什么时候只是简单的!= null
- 22. 什么时候应该使用getElementById?
- 23. 什么时候应该使用_aligned_malloc()?
- 24. 什么时候应该使用GC.SuppressFinalize()?
- 25. 什么时候应该使用`use`?
- 26. 什么时候应该使用didFinishLaunchingWithOptions?
- 27. 什么时候应该使用模板
- 28. 什么时候应该使用可可?
- 29. 什么时候应该使用RESTful?
- 30. 什么时候应该使用const?
为了澄清,你问的编译时和运行时的“分支”之间的区别? – Richard
euh,这两件事情完全不同,所以我猜你应该先读一本关于客观c的书! –
没有使用其中一种的优点和缺点。 “与...相反”是没有道理的,因为它们没有任何关系。 – Marlon