一、变量长度不同
结构体变量所占内存长度是各成员占的内存长度之和,每个成员分别占有其自己的内存单元。
共用体变量所占的内存长度等于最长的成员的长度。
二、占用空间不同
结构体是同时存在的,并一次占用一段连续的内存空间;
而共用体则是多个共用成员占用同一个开始的内存地址,同时他们只能存在一各,所以空间大小就是最大那个所需的空间,如果单从一个共用体来讲,我们是不知道里面存的是什么内容,需要根据程序上下文才能确定。
三、分配储存空间不同
结构体是由一系列具有相同类型或不同类型的数据构成的数据集合,简称结构。在C语言中,可以定义结构体类型,将多个相关的变量包装成为一个整体来使用。在结构体中的变量,可以是相同、部分相同,或完全不同的数据类型。
结构体类型的定义只是由用户构造了一个结构体,但定义结构体类型时系统并不为其分配存储空间。
参考资料来源:百度百科-c++共用体
参考资料来源:百度百科-结构体