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 


你可能感兴趣的:(C语言)