extern关键字是什么意思?

extern关键字是什么意思? 我在类似的函数声明前看到过

 extern void DoFoo ... 

extern给出了一个名称的外部链接 。 这意味着该对象或函数可以通过程序中其他翻译单元的名称访问。 对于函数,在任何情况下都是默认的链接,所以它的用法(在这个上下文中)通常是多余的。

extern关键字声明一个variables或函数,并指定它具有外部链接(它的名字是从定义的文件以外的文件中可见的)。 当修改variables时,extern指定variables具有静态持续时间(当程序开始时分配,当程序结束时释放)。 variables或函数可以在另一个源文件中定义,或稍后在同一个文件中定义。 文件范围的variables和函数的声明默认是外部的。

你可以在这里find更完整的描述 。

对于初学者,

起初,我很困惑,通过@Romain Hippeau了解到,“ extern关键字声明了一个variables或函数,并指定它具有外部链接 ”。

现在我明白了,我们将能够通过extern关键字与其他类共享我们的variables。

例如:Notification.h

在这里输入图像说明

Notification.m

在这里输入图像说明

没有extern关键字对于通知常量将创build以下错误。 在这里输入图像说明