C语言结构体初始化的四种方法

https://blog.csdn.net/ericbar/article/details/79567108

定义

struct InitMember
{
    int first;
    double second;
    char* third;
    float four;
};

方法一:定义时赋值

struct InitMember test = {-10,3.141590,"method one",0.25};

需要注意对应的顺序,不能错位。

方法二:定义后逐个赋值

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中也大量频繁使用,还是很不错的一种方式。

方法四:定义时乱序赋值(C++风格)

这种方法和前一种类似,网上称之为C++风格,类似于key-value键值对的方式,同样不考虑顺序。

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

写在后面

其实问题的引出是在分析FFmpeg源代码时,发现大量的结构体乱序赋值初始化的方式,以前在C语言教材上没有发现这种用法,于是学习总结一下,放到这里存档。

(0)

相关推荐

  • 相对于C语言,C对struct做了非常多的扩充,功能更全面了

    https://m.toutiao.com/is/dk21p9m/?=相对于C语言 我有相当长的一段时间(数月)没有更新文章了. 并不是我放弃了写技术文章,而是因为这段时间,我把精力主要放在了图像智能 ...

  • C语言结构体(struct)最全的讲解(万字干货)

    结构体的定义 结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合,也叫结构. 结构体和其他类型基础数据类型一样,例如int类型,char类型只不过结构体可以做成你想要的数据类型 ...

  • 结构化思维的四种结构?

    结构化思维的定义就是:逻辑+套路. 表达要有逻辑 所谓逻辑是指我们的结构之间必须是有逻辑关系的.例如,你说话的时候用"第一.第二.第三"这个逻辑顺序是合理的,但是,用"第 ...

  • 小说语言要能表现出这四种信息

    第一,语言要能显示人物的身份,职业,地位,经历. 第二,语言描写要能够表现人物的思想感情,反映人物的心理活动. 第三,语言描写要性格化,符合人物的身份.要在描摹语态,叙写对话过程中表现出"这 ...

  • c语言结构体中的冒号的用法

    结构体中常见的冒号的用法是表示位域. 有些信息在存储时,并不需要占用一个完整的字节,而只需占几个或一个二进制位.例如在存放一个开关量时,只有0和1两种状态,用一位二进位即可.为了节省存储空间,并使处理 ...

  • 体虚有四种,分清楚你是哪种虚,调理很简单!

    熬夜.久坐.吹空调-- 现代人的毛病一点也不少 明明按时休息,总感到四肢无力 走路十分钟,没一会就气喘吁吁 一年四季都手脚冰凉,甚至是怕冷 说话有气无力,身体出汗多 这些小毛病 往往与"虚& ...

  • 体虚有四种,分清楚你是哪种虚,调理很简单

    熬夜.久坐.吹空调-- 现代人的毛病一点也不少 明明按时休息,总感到四肢无力 走路十分钟,没一会就气喘吁吁 一年四季都手脚冰凉,甚至是怕冷 说话有气无力,身体出汗多 这些小毛病 往往与"虚& ...

  • 如何禁用Windows 10系统自动更新?四种方法教你关闭!

    在微软各种手段的强推之下,使用Windows 10系统的用户越来越多.尽管Win10系统在功能上做得非常到位,但是它的自动更新就像打不死的小强一样,过段时间就会强制更新. 新几天同事小刘买了一台品牌台 ...

  • 适合宝妈在家赚钱的四种方法动一动就有收入

    人总是在遭遇一次重创之后,才会幡然醒悟,重新认识自己的坚强和坚忍.所以,无论你正在遭遇什么磨难,都不要一味抱怨上苍不公平,甚至从此一蹶不振.人生没有过不去的坎,只有过不去的人.很多生了孩子的妈妈因为要 ...

  • 四种方法判断车轮回正,特别适合新手司机。

    四种方法判断车轮回正,特别适合新手司机。