union占多少字节

union占多少字节

联合体共占 4 字节空间。

联合体,就是将几种数据类型联合起来的一种数据结构,但是它们共用一个空间。它们占用的空间也是同一个地方,只是这些二进制数据当你把它看成浮点型的时候,它是浮点数当你把它看成无符号整数的时候,就是无符号数,或者你把这些数据看成有符号的数据,那么它就是有符号数据。

它既可以表示 Value,也可以修改其中的 Red、Green、Blue。但是也能发现这里还有一个空闲的 1 个字节,这是因为 Value 为四字节,所以只能按照最大的空间申请内存空间(联合体占用的内存空间总是等于当中最大的一个数据类型的大小)。

联合体(union)

当多个数据需要共享内存或者多个数据每次只取其一时,可以利用联合体(union)。如:

1union U

2 {

3 char s[9]

4 int n

5 double d

6 }

s占9字节,n占4字节,d占8字节,因此其至少需9字节的空间。然而其实际大小并不是9。