c语言结构体加联合,C语言:结构体和联合体(共用体)

结构体:struct

1、结构体变量的首地址能够被其最宽基本类型成员的大小所整除。

2、结构体每个成员相对于结构体首地址的偏移量(offset)都是成员的整数倍。

3、结构体的总大小为结构体最宽基本类型成员大小的整数倍。

cpu的字长:

32位的cpu或64位的cpu

32位或64位指的是cpu的字长

字长实际上指得是cpu在访问内存时,一次可以读取的长度。

内存对齐(可以设置,一般是2的倍数,虽然浪费了空间,但是方便了cpu更好更快的取出数据):

char   4个字节

int    4个字节

int    8个字节

double 8个字节

联合体(共用体):union

1、所有的属性成员都共同相同的一块内存空间,而这个空间大小取自最大属性成员的大小。属性成员在依次存值时,会产生覆盖。

2、联合变量的定义和初始化,使用第一个数据成员做初始化,{}不能省略

C在结构体里面使用共用体

在做链表的时候我们设计每个节点都是一个结构体,每个节点的数据用一个共用体表示,每创建malloc一个结构体节点我们也要相应的malloc共用体并把它付进去. 这是定义: typedef union E ...

C结构体struct 和 共用体union的使用测试

#include struct { char name[10]; char sex; char job; int num; union{ //联合只能共用同一个内存 i ...

(转)C语言union(联合体 共用体)

一直以来,union都是个很少用到的东西,对于这些不常用的结构往往记不住.这次看书又看到了,还是学习一下吧.一般在Windows API的一

你可能感兴趣的:(c语言结构体加联合)