做网络芯片开发等低端开发和网络协议栈的时候用的非常的多。
举个简单的例子 我们有个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; }