嵌入式学习的第十五天

主要总结结构体、共用体、枚举以及链表的相关内容。

一、结构体

1.

如果要统计一个班的学生信息,那么这些信息包括名字,性别,学号,成绩等等,基本数据类型无法满足存放这些复杂信息的要求,这时候就需要用结构体来描述这一复杂的数据类型。

struct 结构体类型名
{
   数据成员列表;
};

eg:

描述学生这种类型:
struct student
{
   //name 
   char name[20]; //成员变量  各个成员变量之间 用分号隔开
   //age
   unsigned char age;//0~255 -128~127
   //score
   float score;
   //...
}; //注意: 最后这个分号(;) 表示 --- 结构体类型定义完成 

2.

结构体类型的指针变量的结构体访问成员的方式

结构体类型的变量.成员变量名 
结构体类型的指针->成员变量名

3.

结构体的对齐规则:
1.在32位的平台上,默认都是按4字节对齐的;64位的平台默认是8字节对齐。
2.对于成员变量,各自在自己的自然边界上对齐。
3.如果 成员变量中有比4字节大, 此时整个结构体按照4字节对齐。  //32位的平台
4.如果 成员变量中没有有比4字节大,此时整个结构体按照最大的那个成员对齐。

自然边界对齐 
int -- 4字节 --- 能被4整除的地址编号上 
short -- 2字节 --- 能被2整除的地址编号上 
char -- 1字节 --- 能被1整除的地址编号上

4.

注意:
1.结构体类型,可以定义在 函数里面,但是此时作用域就被限定在改函数中
2.结构体的定义的形式:
//形式1 先定义类型,后定义变量 
struct stu
{
...
};

struct stu s;


//形式2 定义类型的同时定义变量
struct stu
{
...
}s1,s2,*s3,s4[10];

struct stu s;
 
//形式3 省略了类型名 --如果只用一次,可以这样写

struct 
{
...
}s1,s2,*s3,s4[10];

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值