我想在我的Objective-C实现文件中创建一个常量静态数组,类似于在我的".m"文件的顶层添加以下内容:
我计划在文件的后面使用`NUM_TYPES`,所以我想把它放在一个变量中。
然而,当我这样做时,我会得到错误信息:
“文件范围内的可变修改的'types'”
我猜这可能与数组大小是一个变量有关(当我在那里放置一个整数字面值时,比如`static int types[4]`,我就不会收到这个消息)。
我想修复这个问题,但也许我做错了...我在这里有两个目标:
1. 有一个可以在整个文件中访问的数组 2. 封装`NUM_TYPES`到一个变量中,这样我就不必在文件的不同地方散布相同的字面值
我该怎么办?
我在C FAQ(11.8)中找到了这个问题的解答:我不明白为什么不能在初始化程序和数组维度中使用const值
static const int NUM_TYPES = 4;
static int types[NUM_TYPES] = {
1,
2,
3,
4 };
我计划在文件的后面使用`NUM_TYPES`,所以我想把它放在一个变量中。
然而,当我这样做时,我会得到错误信息:
“文件范围内的可变修改的'types'”
我猜这可能与数组大小是一个变量有关(当我在那里放置一个整数字面值时,比如`static int types[4]`,我就不会收到这个消息)。
我想修复这个问题,但也许我做错了...我在这里有两个目标:
1. 有一个可以在整个文件中访问的数组 2. 封装`NUM_TYPES`到一个变量中,这样我就不必在文件的不同地方散布相同的字面值
我该怎么办?
我在C FAQ(11.8)中找到了这个问题的解答:我不明白为什么不能在初始化程序和数组维度中使用const值
#define kNUM_TYPES 4
,会发生什么? - Jorge Israel Peña@"An NSString literal"
),可能会不太理想。你代码唯一的问题就是不需要分号。 - Sam