答案应该选B20
1. 通常int,float都是8个字节
2. union类型是其中的元素公用同一块内存,也就是说该类型的对象占的内存是元素中占用内存最大的元素所占的内存。这里u2是包含两个整形的数组,占8个字节,大于ul5字节,所以ua占8字节
3. 结构体struct每个元素都有自己独立的内存,所以stuct对象占的内存,是各元素所占内存之和。也就是8 + 4 + 4 +1 = 17
4. 然后结构体有内存对齐的要求,就是说,结构体所占的内存,需要是机器字长的整数倍,通常机器字长和int类型相同,也就是4字节,所以该结构体占用的内存应该是20