龙空技术网

结构体/联合体

前端全栈开发 312

前言:

今天朋友们对“结构体中的联合体”大致比较珍视,你们都想要了解一些“结构体中的联合体”的相关文章。那么小编也在网上网罗了一些对于“结构体中的联合体””的相关知识,希望大家能喜欢,兄弟们快快来学习一下吧!

1、结构和联合都是由多个不同的数据类型成员组成,但是在任何一刻,联合中只存放了一个被选中的成员(因为所有成员共用一块地址空间),而结构的所有成员都存在(不同成员的存放地址不同)

2、对于联合体的不同成员赋值,将会对其他成员重写,原来成员的值就不存在了,而对于结构体的不同成员赋值是互不影响的

3、结构体所占总内存为其成员变量中所占空间最大数据类型的整数倍(成员之间可能会有缝隙),共用体占用的内存等于最长的成员占用的内存。共用体使用了内存覆盖技术,同一时间只能保存一个成员的值,如果对新的成员赋值,就会把原来的值覆盖掉

4、利用联合体验证大小端的问题

typedef union myunion {    int a;    char b;}my_union;//int main(int argc, const char * argv[])  {  my_union myUnion;    myUnion.a = 0x12345678;    if(0x78 == myUnion.b) printf("little endian\n"); else printf("big endian\n");}

标签: #结构体中的联合体 #结构体中的联合体赋值是什么