- 概述
- 占据的字节数
- 案例:判断大小端
一个结构体,但是成员共用同一块空间。
union A {
int b;
char c;
};
内存结构:
同一段内存,具有了多种访问方法。
就是最大成员的字节数。
#includeunion A { int b; char c; }; int main() { union A a; printf("%p:%lldn", &a, sizeof a); printf("%p:%lldn", &a.b, sizeof a.b); printf("%p:%lldn", &a.c, sizeof a.c); return 0; }
效果:
总共四字节。
int的成员四字节。
char的成员一字节。
整体以及成员的地址是一样的。
案例:判断大小端一个char,一个int,存放数值1,
如果值相同,那就是大端。因为1放在了开头。
#includeint main() { printf("%d", isBig()); return 0; } int isBig() { union { char a1; int a2; }x; x.a2 = 1; return x.a1; }
效果:



