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