extern关键字是什么意思?

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

extern void DoFoo ...

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


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

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


对于初学者,

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

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

例如:Notification.h

 #import <Foundation/Foundation.h>
 extern const NSString* notificationConstant;

Notification.m

 #import "Notification.h"
 const NSString* notificationConstant = @"NotificationConstant";

通过在任何其他类中导入notification.h,我可以读取字符串NotificationConstant的值。

如果没有关于通知常量的extern关键字,将会产生以下错误。 在这里输入图像描述

链接地址: http://www.djcxy.com/p/79147.html

上一篇: What does the extern keyword mean?

下一篇: What are good Linux/Unix books for an advancing user?