关于共用体union的问题

来源:百度知道 编辑:UC知道 时间:2024/06/04 19:17:58
union里面的变量不是共用内存单元的吗
比如
union {
float f;
bool b[8];
}un;
但是为什么给f赋值后b[]的值没有改变呢?
呵呵,写的时候着急了,把b[8]改为b[32]也是一样的

f占用的空间(在32位平台上是4字节)没有b数组占用的空间(b[8]共占用8字节)大,所以改变了f的值之后,数组b中的某些元素值有可能不变

b是bool型的。0是false,非0是true。
因此虽然改变了f,但有很大的可能0和非0的分类没变。