我们可能知道c99中的指定初始值设定项以及它们用于初始化大型const数组的方式:
const int vals[] = {
[0] = 10,
[10] = 12
}
Run Code Online (Sandbox Code Playgroud)
其中initalizes指数0的vals到10和索引10的vals到12.
我的问题是如何将这种类型的指定初始化器用于数组数组.这是我的示例代码:
typedef enum {
COMMON = 0,
STRINGS,
KEY,
PRECUSSIVE,
GUITAR,
KEYBOARD,
BASS,
PIANO,
DRUMS,
_INST_MAX
} instrument_classification_t;
static const int * const instrument_class_hierarchy[] = {
[COMMON] = {STRINGS, KEY, PRECUSSIVE, _INST_MAX},
[STRINGS] = {GUITAR, BASS, _INST_MAX},
[KEY] = {PIANO, KEYBOARD, _INST_MAX},
[PRECUSSIVE] = {DRUMS, _INST_MAX},
[GUITAR] = NULL,
[KEYBOARD] = NULL, …Run Code Online (Sandbox Code Playgroud)