C语言中结构体struct初始化和赋值的几种方式

http://stackoverflow.com/questions/330793/how-to-initialize-a-struct-in-accordance-with-c-programming-language-standards

在内核中fs/ext3/indoe.c中,一个struct初始化格式个这样的:

我以前没见过这种形式,于是查了一下,原来这是属于C99的“新”特性。

初始化

对于最初(C89)一般形式的struct初始化,需要在大括号中按照成员顺序初始化,和初始化数组很类似;而C99支持乱序初始化,只要给出初始化的变量名,并且在前面加点,后边加等号即可。下面举例和c语言中一般形式的初始化结构体对比:

赋值

对于赋值,C99支持的方式更多样灵活,举例:

发表评论

电子邮件地址不会被公开。 必填项已用*标注