首页 > 编程知识 正文

union结构体大小,c语言结构体union

时间:2023-05-05 07:40:56 阅读:182772 作者:3440

union结构体的大小取决于最大的变量长度。

例如:


#include <iostream>#include <string>using namespace std;union one //返回最大的变量4字节{int a;char b;};union two //返回最大的变量1字节{char a;char b;};union myt//返回最大的name 16字节 因为内存对齐{char name[13];int age;};union four//返回最大的name 13字节{char name[13];};int main(){cout<<sizeof(one)<<endl;cout<<sizeof(two)<<endl;//共用体的长度取决于最大值的长度//也就是name 同时因为内存对齐的原因//只能取4的倍数,因此返回16cout<<sizeof(myt)<<endl;cout<<sizeof(four)<<endl;return 0;}



这里尤其要注意一下关于union中含有字符串数组的时候的长度。当仅仅只有char str[]数组时,长度不变,但是如果char str[]中还含有其他字节变量时,应该要采用内存对齐的方式来计算总长度。

文章来自www.itbuluoge.com

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。