5.struct,union自定义数据类型
2020-09-17 本文已影响0人
傻子online
一般来说C语言给的编译器分配的内存不符合实际资源的形式
需要我们去自定义,而自定义的过程就是通过基本元素的集合来完成
struct-元素之间集合:
struct myabc{
unsigned int a;
unsigned int b;
unsigned int c;
unsigned int d;
}
我们就可以定义一个结构体数据类型mybuf:
struct myabc mybuf;
这就跟申明a为一个整形一样:
int a;
union:
一般我们程序地址申请方式是:
![](https://img.haomeiwen.com/i13175168/6962c7ad4ccc8370.jpg)
这是堆栈的思想
而union呢?
如果第一个申请的值不是很大,第二个巨大无比,那么第二个就从第一个的地
始
![](https://img.haomeiwen.com/i13175168/68fc718b6b7ed45c.jpg)
相当于是一个联合体
这是公用一个起始地址,一种技巧性代码
例子:
union myabc{
char a;
int b;
}
声明union类型数据方法与struct一样