我有一个结构体,大概长这样:
typedef struct
{
uint32_t a;
uint32_t b;
uint32_t c[5];
uint32_t d;
} MY_STRUCT_T;
我希望通过名称初始化c
为非零值,其他所有内容都为0。
如果c
不是一个数组,我可以这样做:
static MY_STRUCT_T my_struct = {.b = 1};
我知道我可以做到这一点:
static MY_STRUCT_T my_struct = {.c[0]=5,
.c[1]=5,
.c[2]=5,
.c[3]=5,
.c[4]=5};
但我在想是否有更优雅的语法,而我不知道: 类似于:
static MY_STRUCT_T my_struct = {.c[] = {5,5,5,5,5}};
我已经阅读了以下内容,但它们没有回答这个问题:
将结构体初始化为0
将结构体初始化为零/空值
在C++中更好地初始化类的静态数组成员(尽管const更受欢迎)
如何将数组的所有成员都初始化为相同的值?
.c=
部分之外,这与 如何将数组的所有成员初始化为相同的值 没有太大区别。 - chux - Reinstate Monica