C语言中的联合体

做网络芯片开发等低端开发和网络协议栈的时候用的非常的多

举个简单的例子
我们有个32位的一个变量A
而我们还可能需要用到A的低16位AL
这个时候我们就可以定义一个联合就可以表示AL了
若16需再次划分,那么可以在联合中再次用一次联合

写个例子你看下

 1 #include <stdio.h>
 2 
 3 typedef union 
 4 {
 5  unsigned int Ax;
 6     struct AX
 7  {
 8   unsigned int AL:16;
 9   unsigned int AH:16;
10  }sAX;
11 }example;
12 
13 int main(void)
14 {
15  example a;
16  a.Ax = 0xAFAFBEBE;
17 
18  int i = a.sAX.AH;
19  printf("AX = 0x%X, AH = 0x%X, AL = 0x%X\n", a.Ax, a.sAX.AH, a.sAX.AL);
20 
21  return 0;
22 }
23 
24 


原文地址:https://www.cnblogs.com/takeaction/p/1917050.html