标签为 "结构体赋值" 的存档

结构体赋值如何偷懒

结构体赋值的简单写法
比如结构体

typedef struct _abc {
        char a;
        short b;
        int c;
} abc;

一般人知道可以这样写abc v={0,1,2};
二般人知道还可以这样写abc v={.c=2,.b=1}; 效果同上。
但这都是定义变量时赋初值,如果是二次赋值,大多数人都只会

v.a=0;
v.b=1;
v.c=2;

因为这时如果写成v={.c=2,.b=1}会出现编译错误。
但是,其实只需要做下类型转换,依然可以这样写

v=(abc){.c=2,.b=1};

虽然这里写的代码不是很明显,但是如果结构体成员变量比较多,变量名又比较长的时候,这个懒还是很值得偷的,而且个人感觉这样写也会更清楚一些。