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

Scope of (const) variable when is not defined as extern or static

我有一些我想成为全局的常量变量,其中一些应该只在定义的文件中可用。所以我使用 extern 和 static 关键字,像这样:

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

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

但是没有修饰符定义的变量作用域是多少,像这样:

const int kMaxHealth = 100;

kMaxHealth 现在是外部的,还是静态的,还是有一些其他范围?

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

const int kMaxHealth = 100;

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

extern const int kMaxHealth;