【问题标题】:Scope of (const) variable when is not defined as extern or static(const) 变量的范围未定义为 extern 或 static
【发布时间】:2015-03-18 21:15:45
【问题描述】:

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

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

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

但是不加修饰符定义时变量的作用域是什么,像这样:

const int kMaxHealth = 100;

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

【问题讨论】:

    标签: ios objective-c static extern linkage


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:
      const int kMaxHealth = 100;
      

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

      extern const int kMaxHealth;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-08-17
        • 1970-01-01
        • 1970-01-01
        • 2019-02-07
        • 1970-01-01
        • 2013-06-05
        • 1970-01-01
        相关资源
        最近更新 更多