【发布时间】:2009-06-16 08:43:46
【问题描述】:
我需要静态定义一个数组(在 *.h 中)大小为 12884901888 的文件。
unsigned char sram[12884901888]; //All of my code is C.
上面的声明给出错误并且不起作用。
因为数组声明中使用的常量是无符号整数。但是我需要使用的常量(12884901888)大于无符号整数限制。
如何定义上述数组,大小为 12884901888?
谢谢。
-AD
附:我知道很多人会说,优化那个巨大的数组大小,但出于某种特定于我的案例的原因,我需要使用相同的大小。
【问题讨论】:
-
您可能需要考虑使用二维数组。在这种情况下,我忘记了标准所说的内容,但我相当确定(至少在 C90 中)固定大小的二维数组可以保证使用行指针布局。如果是这样,那么二维数组可以被视为一维数组(当然使用行指针布局“公式”)。
标签: c arrays declaration