我正在尝试声明和初始化全局C变量。

const int numberOfTickMarks = 6;
const double tickValues[numberOfTickMarks] = {500, 2000, 3000, 4000, 6000, 8000};

当我在头文件中(@interface之前)执行此操作时,出现链接器错误。但是,当我在.m文件中执行此操作时(在@implementation之前),事情似乎可以按需工作。

后者是为C / Objective-C声明全局常量的公认方法吗?

最佳答案

您的全局变量应在头文件中这样声明:

extern const int numberOfTickMarks;
extern const double tickValues[numberOfTickMarks];

没有extern,链接器错误是不可避免的。

在实现文件中,您将必须再次定义它们,如下所示:
const int numberOfTickMarks = 6;
const double tickValues[numberOfTickMarks] = {500, 2000, 3000, 4000, 6000, 8000};

07-28 06:26