(const)变量的范围,当未定义为extern或static时

时间:2015-03-18 21:15:45

标签: ios objective-c static extern linkage

我有一些常量变量,我希望它们是全局变量,其中一些变量只能在定义的文件中使用。所以我使用extern和static关键字,如下所示:

extern const int kMaxHealth = 100;
static NSString * const kName = @"Name";

这只是一个例子,它们是在不同的文件中定义的,所以这不是真实的情况......

但是在没有修饰符的情况下定义变量的范围是什么,如下所示:

const int kMaxHealth = 100;

kMaxHealth现在是extern,还是静态的,还是有其他范围?

2 个答案:

答案 0 :(得分:2)

它与没有const的普通变量具有相同的范围,但不允许您为变量分配新值。

答案 1 :(得分:1)

const int kMaxHealth = 100;

kMaxHealth只是一个全局变量。在文件范围定义的非静态变量可以具有外部链接。例如,在任何头文件中,您可以将其用作 -

extern const int kMaxHealth;