【发布时间】:2010-12-15 07:37:07
【问题描述】:
我想在我的“.m”文件的顶层创建一个用于整个 Objective-C 实现文件的常量静态数组:
static const int NUM_TYPES = 4;
static int types[NUM_TYPES] = {
1,
2,
3,
4 };
我打算稍后在文件中使用NUM_TYPES,所以我想把它放在一个变量中。
但是,当我这样做时,我得到了错误
“文件范围内可变修改的‘类型’”
我认为这可能与作为变量的数组大小有关(当我将整数文字放在那里时,我没有收到此消息,例如 static int types[4])。
我想解决这个问题,但也许我做错了...我在这里有 2 个目标:
- 拥有一个可在整个文件中访问的数组
- 将
NUM_TYPES封装到一个变量中,这样我的文件中的不同位置就不会散布相同的文字
有什么建议吗?
[编辑] 在 C 常见问题解答中找到这个:http://c-faq.com/ansi/constasconst.html
【问题讨论】:
-
如果你将它作为定义来代替会发生什么?
#define kNUM_TYPES 4? -
这行得通...出于某种原因,我试图远离使用预处理器,因为我想我记得在某个地方读过它,但我只是做了更多的研究,找不到一个好的理由在这种情况下不要使用它。我认为如果我在预处理器中创建对象(如
@"An NSString literal")可能不太理想。您的代码的唯一错误是不需要分号。 -
啊,是的,感谢您的提醒,很高兴我能提供帮助。
标签: c objective-c arrays static constants