现在我找到了一种静态初始化项目数组的方法,我需要一个更复杂的结构,而不是一个 char* 作为值,我需要一个结构(名为 atom_s)。
typdef struct atom_s {
const char *val;
const char *filter;
} atom_t;
struct
{
const char *key;
const atom_t **values;
} key_to_values[] =
{
{ .key = "foo", .values = (const atom_t *[]) { NULL } },
{ .key = "bar", .values = (const atom_t *[]) { { .val = "foo", .filter = "bar" }, NULL } },
};
问题是:我不知道如何在上面的数组声明中初始化 atom_s,或者是否有可能。数组的第二行(key = "bar")无法编译:
warning: braces around scalar initializer
warning: (near initialization for '(anonymous)[0]')
error: field name not in record or union initializer