这个结构代表什么?第一个方括号[last_ds_type]
显示结构体的数组。像 [ds_1307]
这样的内部方括号怎么样? .nvram_offset
和 .nvram_size
中的 .
是什么?
static struct chip_desc chips[last_ds_type] = {
[ds_1307] = {
.nvram_offset = 8,
.nvram_size = 56,
},
[ds_1308] = {
.nvram_offset = 8,
.nvram_size = 56,
},
[ds_1337] = {
.alarm = 1,
.century_reg = DS1307_REG_MONTH,
.century_bit = DS1337_BIT_CENTURY,
},
[ds_1338] = {
.nvram_offset = 8,
.nvram_size = 56,
},
[ds_1339] = {
.alarm = 1,
.century_reg = DS1307_REG_MONTH,
.century_bit = DS1337_BIT_CENTURY,
.trickle_charger_reg = 0x10,
.do_trickle_setup = &do_trickle_setup_ds1339,
},
[ds_1340] = {
.century_reg = DS1307_REG_HOUR,
.century_enable_bit = DS1340_BIT_CENTURY_EN,
.century_bit = DS1340_BIT_CENTURY,
.trickle_charger_reg = 0x08,
},
[ds_1388] = {
.trickle_charger_reg = 0x0a,
},
[ds_3231] = {
.alarm = 1,
.century_reg = DS1307_REG_MONTH,
.century_bit = DS1337_BIT_CENTURY,
},
[rx_8130] = {
.alarm = 1,
/* this is battery backed SRAM */
.nvram_offset = 0x20,
.nvram_size = 4, /* 32bit (4 word x 8 bit) */
},
[mcp794xx] = {
.alarm = 1,
/* this is battery backed SRAM */
.nvram_offset = 0x20,
.nvram_size = 0x40,
}
};
最佳答案
这个struct
数组使用数组指定初始化程序语法将数组中的特定元素初始化为特定值。
每个标记(例如 ds_1307
)很可能是一个计算为整数的宏。
.member
表示法是指定初始化程序的另一种形式,程序员使用它来初始化数组特定元素的成员。未显式设置的成员将设置为与实例具有静态
存储持续时间时的值相同的值。
关于c - 这是什么类型的C结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47203533/