struct sembuf {
	unsigned short	sem_num;
	short			sem_op;
	short			dem_flg;
}

无法移植的初始化:

struct sembuf s = { 3, -1, SEM_UNDO };

不同实现,对结构体的定义顺序不一定一致。

消除移植问题:

struct sembuf s;

s.sem_num	=	3;
s.sem_op	=	-1;
s.dem_flg	=	SEM_UNDO;

C99可利用语言对结构体初始化的新语法:

struct sembuf s = { .sem_num = 3, .sem_op = -1, .dem_flg = SEM_UNDO };

在将结构体的内容转储到文件时,需要考虑结构体成员顺序,仅仅将结构体以二进制形式写入是无效的,必须将结构体内字段以特定的顺序逐一加以说明。