c - 文件范围内可变修改的数组

我想在我的“.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 个目标:

  1. 拥有一个可在整个文件中访问的数组
  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 引用

ios - 在 UIView 上设置 alpha 会在其 subview 上设置不应该发生的 alp

ios - NSOperation 和 NSOperationQueue 工作线程与主线程