C语言中的union

一:

C语言中的union在语法上与struct相似

union只分配最大成员的空间,所有成员共享这个空间

example:——————————————————————————————————————————————

                   struct A

                   {

                                      int a;

                                      int b;

                                      int c; 

                   };                                                                                          int main()

                   union B                                          ---------------->                {

                   {                                                     ---------------->                                   printf("%d\n", sizeof(struct A));  //12

                                      int a;                                                                                    printf("%d\n",sizeof(union B));   //4

                                      int b;                                                                                    return 0;

                                      int c;                                                                  }

                   };

————————————————————————————————————————————————————

 

二:

union的使用受系统大小端的影响

(小端模式:低地址存储低位数据,大端模式:低地址存储高位数据)

C语言中的union

example:——————————————————————————————————————————————

                   union C

                   {                                                 

                                      int i;                                                                                

                                      char c; // c从低地址上面取数据                                                                

                   };

                   union C c;

                   c.i = 1;

                   printf("%d\n", c.c);   //小端模式:1 , 大端模式:0

————————————————————————————————————————————————————

三:

编程判断大小端

C语言中的union

C语言中的union

result:  小端模式