我想在我的“.m”文件的顶层创建一个用于整个 Objective-C 实现文件的常量静态数组:
static const int NUM_TYPES = 4;
static int types[NUM_TYPES] = {
1,
2,
3,
4 };
我打算稍后在文件中使用 NUM_TYPES
,所以我想将它放在一个变量中。
但是,当我这样做时,我得到了错误
"Variably modified 'types' at file scope"
我认为这可能与作为变量的数组大小有关(当我将整数文字放在那里时,我没有收到此消息,例如 static int types[4]
) .
我想解决这个问题,但也许我做错了...我在这里有 2 个目标:
NUM_TYPES
封装到一个变量中,这样我的文件中的不同位置就不会散布相同的文字有什么建议吗?
[编辑] 在 C 常见问题解答中找到这个:http://c-faq.com/ansi/constasconst.html
最佳答案
这个警告的原因是 const in c doesn't mean constant. It means "read only".因此该值存储在内存地址中,并且可能会被机器代码更改。
https://stackoverflow.com/questions/1712592/
相关文章:
objective-c - Objective-C 中的字符串比较
objective-c - 如何在 Objective-C 中使用 Swift 结构
ios - 如何使用 UISegmentedControl 切换 View ?
ios - 你如何以编程方式从 View Controller 中画一条线?
ios - 为什么masksToBounds = YES会阻止CALayer阴影?
objective-c - ARC : strong or retain? 的@property 定
iphone - UITableView 单元格中的 UISwitch
objective-c - Xcode 7.3 无法使用手动引用计数在文件中创建 __weak 引用