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

另外,我注意到有CG_EXTERNCG_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_EXTERNCG_INLINE具有特定的含义(可能会有所变化),并且打算在其定义的上下文中使用-而且,您也不想包含一整套框架(所有CoreGraphics / ApplicationServices / CoreFoundation / etc。 ),当您想要指定某种方式时,它就是extern,可以在C和C++中使用。

关于objective-c - Objective-C中的static,extern和inline,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11985307/

10-11 22:45
查看更多