typedef、union

1.自定义数据类型(typedef)
C语言提供了一个叫做typedef的功能来声明一个已有的数据类型的新名字,比如:
typedef int Length;
使得Length成为int类型的别名
这样,Length这个名字就可以代替int出现在变量定义和参数声明的地方了:
Length a,b,len;
Length numbers[10];
2.Typedef
声明新的类型的名字
新的名字是某种类型的别名
改善了程序的可读性
typedef 后第一个出现的是原来的类型名字,第二个是新的名字

typedef long int64_t;//重载已有的类型名字 新名字的含义更清晰,具有可移植性
typedef struct ADate{
int month;
int day;
int year;
}Date;//简化了复杂的名字

int64_t i=10000000000;
Date d={9,1,2005};

3.union联合
选择:
成员是
一个int i还是
一个char c
sizeof(union……)=sizeof(每个成员)的最大值

union AnElt{
int i;
char c;
}elt1,elt2;

elt1.i=4;
elt2.c=‘a’;
elt2.i=0xDEADBEFF
对于union,它的任何成员变量所占据的空间,只有一份,所以叫做联合,大家联合起来使用同一个空间
通过i填一个值,再通过c填一个值进去的话,就把前面的值覆盖掉了,但i还是有值的

4.union的用处

typedef union{
    int i;
    char ch[sizeof(int)];
}CHI;

int main(int argc,char const *argv[])
{
    CHI chi;
    int i;
    chi.i=1234;//0x04D2
    for(i=0;i<sizeof(int);i++){
        printf("%02hhX",chi.ch[i]);
        //FFD2040000  x86小端机器,低位在前,一个数放在内存里的时候,它要把低的东西放在前面
        //可以通过这种方式得到一个数字内部的各个字节
        //比如,当我们要做文件操作的时候,当我们要把一个整数以二进制的形式写到一个文件里头去的时候
        //这就是用来做读写的一个中间的没接
    }
    printf("\n");
    return 0;
}
  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值