gpt4 book ai didi

ios - IOS中的递归包含是什么?

转载 作者:行者123 更新时间:2023-11-29 01:41:59 25 4
gpt4 key购买 nike

我正在学习 objective-c 中#include 和#import 之间的区别。我从互联网上搜索并了解到,#include 可能会导致递归问题。如果你使用#import,这个问题是可以避免的。但是我不明白这一点,首先什么是递归包括,然后#import如何防止这个问题发生?

最佳答案

递归是以自相似的方式重复项目的过程。

就像您可以在其他函数内部调用一个函数一样,您也可以在其内部调用一个函数。调用自身的函数称为递归函数。递归很重要,因为你可以通过解决类似的子问题来解决一些问题。如果您解决的问题本质上是递归的,则递归解决方案通常比迭代解决方案具有更少的代码并且更优雅。

#import 和 #include 有什么区别?

#import 指令作为 #include 的改进版本添加到 Objective-C 中。然而,它是否有所改善仍然是一个有争议的问题。 #import 确保一个文件只被包含一次,这样你就不会遇到递归包含的问题。然而,大多数像样的头文件都会保护自己免受这种情况的影响,所以这并不是真正的好处。

基本上,由您决定要使用哪个。我倾向于为 Objective-C 事物(如类定义等)#import header 和我需要的#include 标准 C 事物。例如,我的源文件之一可能如下所示:

#import <Foundation/Foundation.h>

#include <asl.h>
#include <mach/mach.h>

来源:What is the difference between #import and #include in Objective-C?

关于ios - IOS中的递归包含是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32296026/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com