gpt4 book ai didi

objective-c - @class vs. #import in header compile time saving with Clang?

转载 作者:搜寻专家 更新时间:2023-10-30 20:03:53 25 4
gpt4 key购买 nike

我在几个地方读到建议在头文件中使用@class Something 之类的声明,并且只在 .m 文件中导入这些类以节省编译时间。

这是否真的仍然有必要并使使用 LLVM Clang 的编译速度更快,或者编译时间优势是否仅对旧编译器(如(旧版本)GCC)有效?

最佳答案

不小心你可以得到循环导入:

// A.h
#import "B.h"

// B.h
#import "A.h"

预处理器将在 A.h 中包含 B.h,A.h 又包含 A.h(因为 B.h 导入它),A.h 又导入 B.h,如此循环往复。

@class 语句可以防止意外错误,因为循环导入导致的错误真的很不直观(从个人经验和回溯/错误检查来看)。

关于objective-c - @class vs. #import in header compile time saving with Clang?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7271146/

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