关闭

c++ 中 共用体和结构体比较

标签: c++内存union共用体结构体
564人阅读 评论(0) 收藏 举报
分类:

              (1)c++中,结构体和共用体的定义类似,都是自定义数据类型,具体到语法,调用成员变量都很类似,当然前者的关键字是struct,后者的关键字是union。他们的含义还是不同的。结构体变量所占内存长度是成员变量所占内存长度之和,即每个变量都有自己独立的内存单元,而共用体变量成员变量所占内存长度等于最长成员的长度。

              (2)由上面的内存占有方法可知,共用体内是可以定义多种不同类型数据,但是,同一时刻只有一个成员起作用(因为共用一个内存单元)。而结构体里面是没有这个限制的。

              (3)正由于共用体共用一个内存单元,当给共用体成员赋值的时候,它们会互相覆盖,所以只有最后一次的赋值才会有效。

              总结:

              所以,结构体和共用体之间的差别知道了吧?共用体是节省了内存空间,但是它所带来的数据使用的限定,似乎更加麻烦,没什么实用性。大概是为了兼容c而保留的吧。况且c++中的关键字new,也可以达到union的内存效果,但是用起来方便多了,所以,一般的编程当中我很少用到,不知道一些高端的东西里面有没有其他实用用法。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:37323次
    • 积分:703
    • 等级:
    • 排名:千里之外
    • 原创:33篇
    • 转载:0篇
    • 译文:0篇
    • 评论:16条
    文章存档
    最新评论