union和struct有什么区别?
时间: 2024-01-11 08:03:14 浏览: 86
C语言中struct和union有啥区别
union和struct的主要区别在于数据成员的存储方式和长度计算方法。在任何同一时刻,union中只存放了一个被选中的成员,而struct的所有成员都同时存在。在struct中,各成员占有自己的内存空间,它们是同时存在的,一个struct变量的总长度等于所有成员长度之和,遵从字节对齐原则。而在union中,所有成员不能同时占用内存空间,它们不能同时存在,union变量的长度等于最长的成员的长度。
- Struct的成员存放在不同的地址上,而union的所有成员存放在同一个地址空间。
- Struct的长度是所有成员所占空间之和,而union的长度是其占用空间最大的成员的长度。
阅读全文