在Linux内核中,很多结构体的初始化都使用了C99支持的指定结构体初始化的特性,如init_task的初始化等。
结构体的指定初始化语法与数组的指定初始化项目相似,只是,结构体的指定初始化使用点运算符和成员名来标识具体元素。
如在C Primer Plus(第五版)中提到的结构体 struct book:
struct book
{
char title[MAXTITL];
char author[MAXAUTL];
float value;
};
只初始化book结构的成员value,如下:
struct book surprise = { .value = 20.99 };
也可以按照任意的顺序使用指定初始化,如下:
struct book gift = { .value = 80.66,
.author