【发布时间】:2021-01-31 02:08:51
【问题描述】:
我正在尝试静态声明和初始化一个包含 char 和 int 数组的结构数组。
下面的例子效果很好。
typedef struct myStruct
{
char* name;
uint8_t size;
uint8_t *value;
}myStruct;
uint8_t struct1_value[] = {0x00, 0x01};
uint8_t struct2_value[] = {0x00, 0x01, 0x03, 0x04};
myStruct myStructArray[] = {
[0] = {
.name = "Struct_1",
.size = 2,
.value = struct1_value,
},
[1] = {
.name = "Struct_2",
.size = 4,
.value = struct2_value,
},
};
我找不到允许直接从 myStructArray 初始化 value 字段的语法
我想知道是否有一种方法可以初始化value 字段而无需声明struct1_value 和struct2_value 变量。
也许这在纯 C 中是不可能的,但因为可以静态初始化 char 数组,为什么不使用 int 数组?
【问题讨论】:
标签: arrays c pointers structure static-initialization