本人进度计划以及任务 | 学习c语言 |
本日任务完成情况 (详细说明本日任务是否按 计划完成,开发的代码量) | 学习了 1.函数
传一维数组名,用元素的指针
return ; exit 2.内存管理
3.关键字
请求让编译器将变量直接放入寄存器里面,以提高读取速度;修饰的变量不可被取地址
4.复合数据类型
作业1:为什么使用typedef?
第一,是程序参数化,以提高程序可移植性。如果typedef说明的数据类型依赖于机器,那么当程序一直到其他机器上时,只需改变typedef的类型定义。一个常见的情况是用typedef给不同的整型量说明类型,随后可谓每个宿主机器选择适当的short,int和long…… 第二,是源代码更容易阅读
作业2:什么时候使用static?
static 用来说明静态变量。如果是在函数外面定义的,那么其效果和全局变量类似,但是,static定义的变量只能在当前c程序文件中使用,在另一个c代码里面,即使使用extern关键词也不能访问这个static变量。如果是在函数内部定义的,那么这个变量只初始化一次,即使再次调用这个函数,这个static变量也不会再次被初始化,于是,这个变量的取值就会一直保存着,也就是说,当你再次调用这个函数的时候,里面用到这个static变量时,就会发现,还是它还是上一次函数调用时的结果。
作业3:free如何知道要释放内存空间的长度?
其实真正的内存管理如申请/释放等,并不是由malloc或者free等库函数来负责的,而是交由操作系统去完成,它们只是维护一个空闲的链表式的内存块,理解这一点是问题的关键。例如:要申请sizeof(int)*100大小的内存空间,虽然返回的是内存大小是400,但实际上,操作系统分配时候,会多出一块用于存储内存大小的类似链表head头节点的东东,这个节点存储的是空间的首地址及分配内存的大小。当用户调用free函数的时候,其实它也不知道要释放内存的大小,它只需改变head头结点里的内存的大小就可以了,具体内存空间的释放由操作系统去完成。
|
本日开发中出现的问题汇总 | 无 |
本日未解决问题无 | 无 |
其它 | 无 |