有时候会遇到定义一个结构体但是我们仅需要初始化部分结构体成员的问题。比如如下结构体:
struct gpio_irq_desc{
int pin_num;
char *pin_name;
int gpio_num;
int irq;
struct timer_list gpio_timer;
struct wake_lock gpio_lock;
};
结构体中的timer_list和wake_lock结构体我们不需要在定义的时候初始化,因为他们需要对应的API函数初始化,我们仅需要初始化其他成员,比如pin_num,gpio_num等,C语言中初始化写法如下:
static struct gpio_irq_desc gpio_irq_desc_custom[CUSTOM_PIN_MAX] =
{
[0] = {
.pin_num = 23,
.pin_name = "pin23_gpio26",
.gpio_num = 26,
},
[1] = {
.pin_num = 64,
.pin_name = "pin64_gpio3",
.gpio_num = 3,
},
[2] = {
.pin_num = 66,
.pin_name = "pin66_gpio5",
.gpio_num = 5,
},
[3] = {
.pin_num = 136,
.pin_name = "pin136_gpio38",
.gpio_num = 38,
},
};