C语言 - 各种自定义数据类型

1.结构体

        把不同类型的数据组合成一个整体
        所占内存长度是各成员所占内存的总和

        typedef struct XXX
        {
           int a;
           char b;
        }txxx;
        txxx data;


        typedef struct XXX
        {
           int a:1;
           int b:1;
           int c:30;
        }txxx;

        使用typedef 定义结构体时,给XXX结构体起别名txxx,后续定义可以不用struct XXX,直接用txxx

2.结构体指针

        typedef struct XXX
        {
           int a;
        }txxx;
        txxx *data;

        (*data).a;
        data->a;

3.联合体

        使几个不同类型的变量共占一段内存
        整个联合体所占内存长度为最长成员占的内存长度

        typedef union XXX
        {
           int a;
           char b;
        }txxx;
        txxx data;

4.联合体应用实例 - 判断大小端问题

        union myunion
        {
           int a;
           char b;
        }
        int little_endian(void)
        {
           union myunion data;
           data.a = 0x12345678;
           if(data.b == 0x78)
              //小端
           else if(data.b == 0x12)
              //大端 
        }

9517e0b80733415fb6072d5bd2ae9fdd.png

5.联合体内嵌结构体

        typedef union XXX
        {
           int all;
           struct
           {
              int b:16;
              int c:16;
           }s;
        }txxx;
        txxx data;

        data.all = 0;
        data.s.b = 0;

6.枚举

        enum
        {
           a = 0,
           b,
           c
        };

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bigger_One

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值