c语言中联合体的作用 举例说明
#include<stdio.h>
#include<stdlib.h>
int main()
{
union a
{
char b;
int c;
};
union a x;
x.b=5;
x.c=4;
printf("%d\n",x.b);
return 0;
}
结果是4
那联合体到底有什么作用呢????
[解决办法]
有时需要使几种不同类型的变量存放在同一段内存单元中
[解决办法]
举个例子,利用union判断Big Endian\Little Endian方法:
static union
{
char c[4];
unsigned long mylong;
}
endian_test = {{ 'l', '?', '?', 'b' } };
#define ENDIANNESS ((char)endian_test.mylong)
ENDIANNESS 为 'l' 则为little endian, 为 'b'则表示big endian