【发布时间】:2012-07-04 03:53:06
【问题描述】:
我需要初始化一个静态数组。并非所有值都是连续的。
这样的东西对顺序数组很有效:
class Foo {
public:
static const char * name[];
}
const char * Foo::name[] = { "Sun", "Moon" };
如何在数组中的任意位置赋值?我需要做这样的事情(伪代码):
const char * Foo::name[] = { 67: "Sun", 68: "Moon" };
数组永远不会大于 255;索引来自字节值。
我发现 part of a thread 有人给出了一个与我想要的类似的例子,但我无法让这样的事情起作用。
type array[SIZE] = {[SIZE-4]=1, 2, 3, 4};
【问题讨论】:
-
[SIZE-4]=1被称为指定初始化器,仅在 C 中可用,在 C++ 中是非法的(但是,在 gcc 中,它们将其作为扩展提供)。但是,不支持非平凡(即您的示例)。
标签: c++ arrays static initialization