我正在尝试声明和初始化全局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};