在下面的程序中,我可以理解为什么short
联合的成员存储在相同的 2 个字节中(因为联合的大小是最大成员的大小)。但我只是不明白为什么所有 4 个字符成员都存储在相同的字节,而人们会假设它们将分布在两个字节中并存储为
c1,c3--->first byte
c2,c4--->2nd byte
或者更清楚
Byte1 Byte2
----short a----
----short b----
--c1-- --c2--
--c3-- --c4--
将它们存储为的原因是什么
Byte1 Byte2
----short a----
----short b----
--c1--
--c2--
--c3--
--c4--
这背后的原因是什么?她的程序:
#include<stdio.h>
int main(void)
{
union test
{
short a,b;
char c1,c2,c3,c4;
} var= {65};
printf("%hd,%hd,%c,%c,%c,%c",var.a,var.b,var.c1,var.c2,var.c3,var.c4);
}
结果:
65,65,A,A,A,A