gpt4 book ai didi

objective-c - Objective-C 中的静态、外部和内联

转载 作者:太空狗 更新时间:2023-10-30 03:09:50 28 4
gpt4 key购买 nike

在使用 LLVM 编译器的 Objetive-C 中,staticexterninline(及其组合)是什么意思?

另外,我注意到有 CG_EXTERNCG_INLINE 宏。我们应该改用那些吗?

(我找不到具有清晰解释的来源,所以我认为在这里创建一个可能会有用,或者如果有人知道的话请指出它)

最佳答案

What do static, extern and inline (and their combinations) mean in Objetive-C using the LLVM compiler?

与 C 中的相同,除非您编译为 ObjC++——那么它们的含义与 C++ 中的相同。

这里是对 C 的介绍,但如果您准备好使用它们,请阅读链接,因为细节很重要:


外部

总结:表示标识符在别处定义。

详情:http://tigcc.ticalc.org/doc/keywords.html#extern

静态

摘要(值):保留变量值以在其作用域结束后继续存在。

总结(函数):有效地发出未命名的副本 - 对于 C 中的私有(private)函数很有用,并且在与内联函数一起使用时可用于转义多个定义错误。

详情:http://tigcc.ticalc.org/doc/keywords.html#static

内联

总结:建议将函数体移至调用者中。

详情:http://tigcc.ticalc.org/doc/gnuexts.html#SEC93


请注意,内联和静态在 C++ 中要复杂得多(就像 C++ 中的几乎所有内容一样)。

I also found that there are CG_EXTERN and CG_INLINE macros. Should we be using those instead?

没有。

相反,如果您需要这种类型的功能,您应该用自己的含义指定自己的。 CG_EXTERNCG_INLINE 具有特定的含义(可能会改变),并且要在它们定义的上下文中使用——另外,您不希望必须包含当您想要指定某些内容时,整个少数框架(所有 CoreGraphics/ApplicationServices/CoreFoundation 等)都是以在 C 和 C++ 中工作的方式extern

关于objective-c - Objective-C 中的静态、外部和内联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11985307/

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