在linux内核中经常看到诸如下面的结构体样式
static const struct file_operations mem_fops = {
.llseek = memory_lseek,
.read = read_mem,
.write = write_mem,
.mmap = mmap_mem,
.open = open_mem,
.get_unmapped_area = get_unmapped_area_mem,
};
查询资料后,发现原来这也是一种结构体初始化的方法,也有说这种方法只在gcc里面支持,别的编译器不一定支持
, 但是使用这种顺序以后初始化的顺序是不可变的。
而利用struct s s1; s1.结构体变量;或struct s *s2 ;s2->结构体变量;这两种方法初始化时则无顺序要求。