什么是static
, extern
和inline
(和它们的组合)中使用LLVM编译器Objetive-C是什么意思?
另外,我注意到,有CG_EXTERN
和CG_INLINE
宏。 我们应该利用这些呢?
(我无法找到一个明确的解释的来源,所以我想如果有人知道一个可能是有用的创建到一个位置,或点)
什么是static
, extern
和inline
(和它们的组合)中使用LLVM编译器Objetive-C是什么意思?
另外,我注意到,有CG_EXTERN
和CG_INLINE
宏。 我们应该利用这些呢?
(我无法找到一个明确的解释的来源,所以我想如果有人知道一个可能是有用的创建到一个位置,或点)
什么静态,extern和内联(和它们的组合)中使用LLVM编译器Objetive-C是什么意思?
同在C,除非你编译为ObjC ++ - 那么他们的意思是C ++中的相同。
因此,这里是对C的介绍,但读的链接,如果你已经准备好使用这些,因为细节很重要:
外部
总结: 表示的标识符别处定义。
详细信息: http://tigcc.ticalc.org/doc/keywords.html#extern
静态的
摘要(值): 保留变量值的范围结束后存活下来。
摘要(功能):有效发射无名份 - 一种在C私人功能是有用的,并且可以使用具有内联函数使用时逸出多个定义错误。
详细信息: http://tigcc.ticalc.org/doc/keywords.html#static
排队
摘要:提出了一种函数体应该被移动到呼叫者。
详细信息: http://tigcc.ticalc.org/doc/gnuexts.html#SEC93
请注意,内联和静态在C ++(如几乎所有的C ++)更复杂了不少。
我还发现,有CG_EXTERN和CG_INLINE宏。 我们应该利用这些呢?
没有。
相反,你应该指定你自己,用自己的含义,如果你需要这种类型的功能。 CG_EXTERN
和CG_INLINE
有特定的含义(可以改变),并意味着其定义的上下文中使用-而且,你不希望有包括框架的整体少数(所有CoreGraphics中/ ApplicationServices /的CoreFoundation /等。 )当你想指定东西extern
中,在C和C ++的工作方式。
贾斯汀涵盖了大多数,但我发现,对于那些谁想要深入挖掘其它的一些资源:
通过声明一个内联函数,你告诉编译器替换功能的完整代码直接进入从那里被称为地方。 这是一个相当高级的功能,需要低级编程的理解。
内联函数
这太问题具有约的extern变量产生巨大的答案-变量定义的“别处” -但也需要被用于“这里”。
静态保留的范围之内可变的生活。 变量是它被宣布范围内可见。
什么是一个静态变量是什么意思?