声明结构并定义{}中包含的值是否有效?

时间:2012-07-01 03:52:11

标签: c macos

声明结构并定义{}?

中包含的值是否有效?
struct name new_name[] {
    {"value1"},
    {"value2"},
    {"value3"},
}

其中:

struct name {
    union {
        char *value1;
    } n_u;

    char *value2;
}

1 个答案:

答案 0 :(得分:3)

您发布的内容无效,因为它在初始化程序之前缺少等号(并且还有分号)。否则,这是合法的,但有点难以阅读,因为它没有初始化每个字段,也没有使用全套括号。在完全支撑的初始化程序中,每个数组,结构或联合的值列表周围都有一对括号。在这种情况下,你有一个带有联合的结构数组,因此应该有3个级别的大括号​​以获得最佳的可读性。所有拼写的等价物是:

struct name new_name[] = {
    {{"value1"}, NULL},
    {{"value2"}, NULL},
    {{"value3"}, NULL},
};