项目名称 | 【苏嵌实训-嵌入式linux C 第7天】 |
---|---|
今日进度以及任务 | 今日主要任务复习函数、函数指针 函数指针数组,理解关键字以及结构体,枚举,共用体 |
本日任务完成情况 | 已经完成老师上课所布置任务 |
-本日开发中出现的问题汇总- | -无- |
本日未解决问题 | 无 |
本日开发收获 | 了解了程序在虚拟内存中的分布 |
1.free 是如何知道释放多大空间?
系统在分配内存时除了分配指定的内存空间外,还有分配用于保存内存空间大小等信息。所以内存释放时不再需要再指定释放多大的内存空间,只需要指定该块内存空间的首地址即可。
2.static 在什么样的情况下使用?
static 对栈变量的修饰,可以认为栈变量的生命周期延长到程序执行结束时。一般来说,栈变量的生命周期由OS管理,在退栈的过程中,栈变量的生命也就结束了。但加入static修饰之后,变量已经不再存储在栈中,而是和全局变量一起存储。
static 对全局变量的修饰,可以认为是限制了只能是本文件引用此变量。有的程序是由好多.c文件构成。彼此可以互相引用变量,但加入static修饰之后,只能被本文件中函数引用此变量。
static 对函数的修饰,只能被本文件中的函数调用,而不能被同一程序其它文件中的函数调用。
3.为什么要使用 typedef 给类型重命名?
为现有类型创建别名,定义易于记忆的类型名。 简化代码。 便于批量修改具体类型。