typedef union与typedef struct这两个类型定义的区别是什么

来源:百度知道 编辑:UC知道 时间:2024/06/01 04:52:23

联合体里不能含结构体.扯淡

struct 类型的内存分配是结合内部的所有变量大小和相关的,但不是简单的相加,从上面的例子就可以看出来, struct 类型的分配的内存大小是应该内部最大数据类型的整数倍,不足一倍的部分会自动补全成一倍大小,应该是编译器为了数据整齐,处理速度会快些把。 union 类型的内存分配,只是和联合体内的最大的一个数据类型的大小相关,而且 union 内的所有数据都在一个单独的内存空间里面。这些就是上面程序出现这样的结果的原因。

第一个是联合体,第二个是结构体

一个是联合体,一个是结构体。参见C语言基础。

typedef union 定义联合体.
typedef struct 定义结构体.

联合体可以由不同类型的简单变量组合构成.
结构体可以由不同类型的较复杂的变量组合构成.

结构体里可以含联合体.
联合体里不能含结构体.