嵌入式day16

结构体与共用体

概述

通常结构体名第一个字符大写

} ; 分号不能省略

类型名与变量名的关系 :抽象与具体的关系

. :结构体成员运算符

先有类型,再有定义

Student 可省略

使用者只能用全局变量s1,s2

全部初始化:

顺序与声明的类型有关

部分初始化:

中间用 “,” 隔开,其余部分补0

结构体对齐:

浪费字节对齐,提高程序(cpu)执行效率(空间换时间)

规则:

1、结构体按照其最长成员大小对齐,意味着最终的大小必须是最长成员大小的整数倍;

2、结构体成员按照结构体成员声明先后次序依次存放,并且每个成员的首字节放置的位置必须能够整除成员的字节数;

3、如果结构体某个成员的字节数大于CPU的字节数,则最长按照CPU的字节数对齐;

4、用预处理命令#pragma pack(n) 可以强制编译器按照指定的n来对齐,合法的n的数值分别是1、2、4、8、16。

数组按数组装的元素来对齐,并非数组个数

结构体作为函数参数传递使,通常用指针传参

->:指向结构体成员运算符

左边为指针 用指向,为变量,用 .

结构体变量允许整体赋值

结构体不能整体比较,但是成员间可以进行比较

尽量不在头文件里包头文件,降低编译效率

程序 = 数据结构 + 算法

用指针处理链表

链表概述

pHead 头指针保存第一个节点的地址

插入,删除的算法复杂度为1,效率高于数组

节点都是从堆上来的(malloc)

空链表 : 头指针指向NULL

链表节点地址不连续,不能加i访问第i个元素的地址

有头链表和无头链表:

有头链表

首节点从栈区来

头插:

遍历:

---------------------------

嵌入式学习第十六天,今天学习了c语言的最后一章内容,c语言马上就要结束了,后面继续加油

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值