Live2d Test Env

结构体

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博客_结构体内存对齐规则

 

 

  

 

posted @ 2024-08-15 16:37  爬上那个坡  阅读(37)  评论(0)    收藏  举报