我正在尝试声明并初始化全局 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};
关于ios - Objective-C 中全局 C 常量的正确声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16447426/