【问题标题】:What does the extern keyword mean?extern 关键字是什么意思?
【发布时间】:2011-02-14 18:53:34
【问题描述】:

extern 关键字是什么意思?我在像

这样的函数声明之前已经看到了
extern void DoFoo ...

【问题讨论】:

标签: c objective-c extern


【解决方案1】:

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

您可以找到more complete description here。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      对于初学者,

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

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

      例如: 通知.h

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

      通知.m

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

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

      如果没有外部关键字 For Notification 常量将产生以下错误。

      【讨论】:

        猜你喜欢
        • 2010-10-29
        • 2011-10-28
        • 1970-01-01
        • 1970-01-01
        • 2010-09-12
        相关资源
        最近更新 更多