结构体
1. 结构体的定义:结构体定义包含三个部分:(总称结构布局)
1.1 关键字struct
1.2 标记 (跟在关键字struct后面,可有可无,后面引用的话必须有)
1.3 .结构列表成员
1.4 结构变量
1.5 最后使用 ;分号结束
总称结构布局
struct Model{ char Input[8]; char Model[6]; //字符串
unsigned int music_volue[100];//数值类型数组
unsigned int mic_volue[100];
unsigned char *P; //指针定义 };
struct Mode a1;//定义了结构体变量
****结构布局声明之后,编译器并不分配内存,只有在结构体变量定义之后,才为结构变量分配内存
结构体定义2:
typedef struct { char Input[100]; char Model[100]; int mic_value[100]; }Model_t; Model_t a; //使用typedef给struct 重新定义一个名字
2.结构体数组、指针
#define Maxtitle 40 #define Maxauthor 40 #define Maxbooks 100//最多100本书 struct BOOK={ char title[Maxtitle]; char author[Maxauthor]; float value; }; struct BOOK Library[Maxbooks] ;
struct BOOK *p; //结构体数组初始化 Library[1].title="name1"; Library[1].author="author1"; Library[1].value="100";
//指针初始化
p->title = "name";
p->author = "aurhor";
p->value = 2;
结构体数组定义表示数组每一个元素都是一个结构体变量,包含结构体中的所有元素。
3. 结构体大小计算
结构体对齐:结构体数据的自身对齐;结构体整体对齐;
结构体在32位机中,一般按四字节对齐,64位机中按 8 字节对齐,结构体大小计算参考
C语言--结构体内存对齐规则_guanyunpeng's-CSDN博客_结构体内存对齐规则

浙公网安备 33010602011771号