什么是外部?

时间:2014-09-30 20:16:45

标签: objective-c

我知道' extern'意味着它的声明和定义在相同的源文件中不可用。但是,我没有看到任何重要的用途。

假设我有三个班级员工,部门和图书馆。

假设我们在Library类

中有这样的东西
extern NSString *abc;

我们在Department类中使用类似的东西。

Department.h

NSString *abc;

Department.m

abc = @"abcdefg";

这样的是Employee类。

Employee.m

NSString *abc = @"xyz";

当我们查看类Employee和Department时,它们看起来就像正常的变量声明和定义。

所以,我的问题是它的特殊能力是什么?

1 个答案:

答案 0 :(得分:1)

在这种情况下,extern告诉编译器不要抱怨变量的声明没有它的定义。尽管如此,Xcode并没有抱怨这一点,因为所有Objective-C全局变量都是秘密声明的extern

你可以在技术上关闭extern指令,但你可能也是明确的。它对于看到它的程序员来说仍然意味着什么。