自定义类型的C数组中独立方括号的含义是什么?
Library /absolute/path/Library.py
在上面的代码中,typedef enum {
BAR_1 = 0,
BAR_2,
BAR_3,
} bar_types;
typedef struct {
int is_interesting;
int age;
} foo_s;
static foo_s bars[] = {
[BAR_1] = {1, 2}, /* What is being done here? */
[BAR_2] = {1, 41},
[BAR_3] = {0, 33},
};
的含义是什么?什么时候可以使用独立的方括号?
我注意到如果我在括号中添加重复值,clang会发出关于子对象初始化的警告。
[BAR_1] = {1, 2}
什么是C子对象?
答案 0 :(得分:2)
这是结构初始化,"子对象"是正在初始化的结构的实例。
您的警告来自于尝试两次初始化相同的阵列位置。
另见How to initialize a struct in accordance with C programming language standards