苏嵌实训-嵌入式 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  修饰变量,该变量成为一个只读变量,注意事项,修饰某个变量时,一定要初始化

十一、复合数据类型

你可能感兴趣的:(物联网工程实践实训)