苏嵌实训-嵌入式 linux C 第 5 天
项目开发日报表
项目名称 |
【苏嵌实训-嵌入式 linux C 第 5 天】 |
今日进度以及任务 |
完成了老师布置的题目
|
本日任务完成情况 (详细说明本日任务是否按计划完成,开发的代码量) |
完成了老师所布置的任务 将老师的上课所讲的代码重新敲了一遍 |
本日开发中出现的问题汇总 |
每个关键字的用法不同,所起到的作用也不同 |
本日未解决问题 |
用些关键字之前没怎么用过,使用不太熟悉 |
本日开发收获 |
1、讲解了函数的知识点 2、知道内存管理是稀缺资源 3、一些关键字的用法和作用 4、复合数据类型 |
其他 |
|
1、free是如何知道释放多大空间?
系统在分配内存时除了分配指定的内存空间外,还有分配用于保存内存空间大小等信息。所以内存释放时不再需要再指定释放多大的内存空间,只需要指定该块内存空间的首地址即可。
2、static在什么样的情况下使用?
静态变量(类变量):当对象中出现共享数据时,该数据被静态所修饰;对象中的特有数据要定义成非静态存于堆内存中。
静态函数:当功能内部没有访问到非静态数据(对象的特有数据),那么该功能可以定义成静态的。
3、为什么要使用typedef给类型重命名?
在不同使用环境下,让数据类型变得有具体含义
八、函数
函数三要素:函数名,形参,返回值
函数名 命名-->自注释性 动词+名词
函数参数 实参是什么类型,形参就要定义成什么类型
传一维数组名,用元素的指针
传二维数组名,用一维数组指针
传三维数组名,用二维数组指针
传指针数组名,用指针的指针
传地址和传值 什么时候传地址,什么时候传值?
当值只使用不修改实参变量的值,传实参变量名;func(实参变量名)
当使用及修改实参变量的值,传实参变量的地址;fun(&实参变量名)
函数的返回值 return exit
华为编码规范 入口参数检查,函数的异常处理
函数指针变量 保存函数入口地址
函数名作用 指针常量,保存函数的入口地址(函数地址)
函数指针的作用 做函数形参,实现回调函数
九、内存管理(C语言)
内存是稀缺资源
内存管理应该掌握哪些内容? 数据存放在哪(Linux虚拟地址空间分布图)
常见的内存错误 内存泄露(主要),内存碎片,内存空洞
内存池(将使用多次malloc操作改变成只使用1次) malloc/free是一个开销非常大的操作
十、关键字
register 尽可能的将数据保存到CPU寄存器中;提高程序的执行效率(省去了CPU通过总线从内存中抓取数据的时间)
static 修饰局部变量,延长了局部变量的生命周期,程序结束之后再释放(只执行一次)
修饰全局变量,静态全局变量,该变量不能在其他文件中访问
extern 外部声明,告诉编译器这个函数或者变量是在其他文件定义的
const 修饰变量,该变量成为一个只读变量,注意事项,修饰某个变量时,一定要初始化
十一、复合数据类型
- 苏嵌嵌入式Linux实训 第五天
- 苏嵌嵌入式Linux实训 第四天
- 苏嵌嵌入式Linux实训 第三天
- 苏嵌嵌入式Linux实训 第二天
- 2020-07-02苏嵌嵌入式Linux实训 第一天
- 苏嵌实训-嵌入式 linux C 第 6 天
- C语言基础知识-苏嵌实训 嵌入式 linux C 第 3 天
- 苏嵌嵌入式linux实训 第2天
- 苏嵌嵌入式linux实训 第一天
- 苏嵌工程实训-嵌入式Linux开发(基础命令)
- linux文件编程-苏嵌实训第11天
- linux下C语言编程之位运算和字符串运算中遇到的问题:20120707苏嵌实训第第六天
- 嵌入式基础应用开发之Linux开发环境搭建及初步指令(苏嵌日志之Monday)
- 实用嵌入式C Linux程序设计
- 基于S3C2440的嵌入式Linux驱动——SPI子系统解读(二)
- linux嵌入式编程高手历程系列2-安装debian并建立嵌入式编译环境
- LINUX嵌入式系统开发平台选择
- 【嵌入式Linux驱动开发】三、字符设备驱动(一)
- 嵌入式linux应用开发完全手册学习笔记二(嵌入式linux开发环境搭建)
- 嵌入式Linux设备驱动开发笔记(五)