C中结构体初始化的3种方法

结构体声明
struct InitMember
{
     int first;
     double second;
     char* third;
     float four;
};

方法一:定义时赋值
struct InitMember test = {-10,3.141590,"method one",0.25};
1
需要注意对应的顺序,不能错位。

方法二:定义后逐个赋值
struct InitMember test;

test.first = -10;
test.second = 3.141590;
test.third = "method two";
test.four = 0.25;

因为是逐个确定的赋值,无所谓顺序啦。

方法三:定义时乱序赋值(C风格)
这种方法类似于第一种方法和第二种方法的结合体,既能初始化时赋值,也可以不考虑顺序;

struct InitMember test = {
     .second = 3.141590,
     .third = "method three",
     .first = -10,
     .four = 0.25
};

这种方法在Linux内核(kernel)中经常使用,在音视频编解码库FFmpeg中也大量频繁使用,还是很不错的一种方式。


原文链接:https://blog.csdn.net/ericbar/java/article/details/79567108

posted @ 2022-04-11 14:51  Simon.Zhou  阅读(638)  评论(0编辑  收藏  举报