联合体

原文地址:http://www.cnblogs.com/takeaction/archive/2010/12/26/1917050.html

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

写个例子你看下

#include <stdio.h>

typedef union
{
unsigned
int Ax;
struct AX
{
unsigned
int AL:16;
unsigned
int AH:16;
}sAX;
}example;

int main(void)
{
example a;
a.Ax
= 0xAFAFBEBE;

int i = a.sAX.AH;
printf(
"AX = 0x%X, AH = 0x%X, AL = 0x%X\n", a.Ax, a.sAX.AH, a.sAX.AL);

return 0;
}

 编译:Makefile

ll:main                                                                        
main:main.c
gcc
-g -Wall -O0 main.c -o main

  

*******output********

AX
= 0xAFAFBEBE, AH = 0xAFAF, AL = 0xBEBE

  

 

posted @ 2011-07-22 22:40  wangkangluo1  阅读(291)  评论(0编辑  收藏  举报