使用LLVM编译器的Objetive-C中static
,extern
和inline
(及其组合)是什么意思?
另外,我注意到有CG_EXTERN
和CG_INLINE
宏。我们应该改用那些吗?
(我找不到明确解释的资源,因此我认为在此处创建一个资源可能有用,或者如果有人知道一个资源,则指向它)
最佳答案
与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++中的几乎所有内容一样)。
没有。
相反,如果需要这种功能,则应使用自己的意思指定自己的名称。 CG_EXTERN
和CG_INLINE
具有特定的含义(可能会有所变化),并且打算在其定义的上下文中使用-而且,您也不想包含一整套框架(所有CoreGraphics / ApplicationServices / CoreFoundation / etc。 ),当您想要指定某种方式时,它就是extern
,可以在C和C++中使用。
关于objective-c - Objective-C中的static,extern和inline,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11985307/