我正在学习目标c中#include和#import之间的差异。我从互联网搜索了解到,#include可能会导致递归问题。如果您使用#import,则可以避免此问题。但我不明白这一点,首先什么是递归包含,然后#import如何防止这个问题发生?什么是递归包含在IOS中?
0
A
回答
0
递归是以自相似的方式重复项目的过程。
与其他函数内部调用函数的方式相同,您可以在其内部调用函数。一个调用自己的函数被称为递归函数。递归很重要,因为你可以通过解决类似的子问题来解决一些问题。如果你解决的问题本质上是递归的,那么递归解决方案通常具有更少的代码并且更优雅,以至于它们的迭代等价物。
#import和#include之间有什么区别?
#import指令作为#include的改进版本添加到Objective-C中。然而,它是否得到改善仍然是一个争论。 #import确保文件只包含一次,这样您就不会遇到递归包含的问题。然而,多数体面的头文件无论如何都会保护自己,所以它并不是真正的好处。
基本上,由您来决定您要使用。我倾向于为Objective-C的东西#import头文件(比如类定义等)和#include我需要的标准C东西。例如,我的源文件中的一个可能是这样的:
#import <Foundation/Foundation.h>
#include <asl.h>
#include <mach/mach.h>
来源:What is the difference between #import and #include in Objective-C?
相关问题
- 1. 什么SSIDDATA在IOS中包含
- 2. 什么是间接递归?
- 3. 什么是递归树?
- 4. CMake递归包含模块
- 5. activejdbc包含家长递归
- 6. _._在包装中的含义是什么?
- 7. 什么是PHP中的递归函数?
- 8. 为什么你需要在递归函数中包含“return”关键字?
- 9. 递归闭包返回什么?
- 10. 递归列表中包含财产
- 11. 什么包含在JavaScriptConverter中
- 12. iOS中的PkgInfo的含义是什么
- 13. 这段代码的“递归条件”是什么(递归在Java中)
- 14. 什么iOS框架包含CGImageRelease?
- 15. 递归和类实例递归的区别是什么
- 16. 以下递归函数的非递归函数是什么?
- 17. 为什么Enum声明中的类型参数包含递归类型边界?
- 18. 是什么埃德Kmett的递归方案包
- 19. 什么包含在PyPi包中?
- 20. applicationContext中包含$ {Session.resources}是什么?
- 21. xDebug:var_dump中包含的数字是什么?
- 22. 什么是包含在载体
- 23. 这是什么递归算法
- 24. 为什么不是无限递归?
- 25. 为什么不是这种尾递归?
- 26. 什么是相互递归类型?
- 27. 什么是尾递归消除?
- 28. 关于递归什么是种子值?
- 29. 这是什么样的递归?
- 30. 为什么不是iframe的递归?