声明结构并定义{}?
中包含的值是否有效?struct name new_name[] {
{"value1"},
{"value2"},
{"value3"},
}
其中:
struct name {
union {
char *value1;
} n_u;
char *value2;
}
答案 0 :(得分:3)
您发布的内容无效,因为它在初始化程序之前缺少等号(并且还有分号)。否则,这是合法的,但有点难以阅读,因为它没有初始化每个字段,也没有使用全套括号。在完全支撑的初始化程序中,每个数组,结构或联合的值列表周围都有一对括号。在这种情况下,你有一个带有联合的结构数组,因此应该有3个级别的大括号以获得最佳的可读性。所有拼写的等价物是:
struct name new_name[] = {
{{"value1"}, NULL},
{{"value2"}, NULL},
{{"value3"}, NULL},
};