物联网工程实训博客day-5
Linux小白进阶-7
一.日报表
项目名称 | 【苏嵌实训-嵌入式 linuxC 第5天】 |
---|---|
今日进度以及任务 | C语言函数、内存管理、关键字 |
本日任务完成情况 (详细说明本日任务是否按计划完成,开发的代码量) | 作业完成。代码:输入字符串、帧头和帧尾,输出字符串的合法帧;输入字符串单词位置倒序而不改变单词内部结构; |
本日开发中出现的问题汇总 | 合法帧的输出 |
本日未解决问题 | 无 |
本日开发收获 | 1.常见的内存错误:内存泄漏、内存碎片、内存空洞 2.传地址和传值的使用 3.register、static、extern、const |
二、作业
1. free函数是如何知道释放多大空间?
在申请内存块时会在内存块前面几个字节存储内存块的大小。所以free()函数只要把首地址往前推就可以读取内存块的大小了。
2. 在什么情况下使用static关键字?
使用static有三种情况:
函数内部static变量、函数外部static变量、static函数
函数内部的static变量,关键在于生命周期持久,他的值不会随着函数调用的结束而消失,下一次调用时,static变量的值,还保留着上次调用后的内容。
static 函数也与此类似,将函数声明为static,说明我们只在当前文件中使用这个函数,其它文件看不到,即使重名,也不会相互冲突。
3. 为什么使用typedef给类型重命名?
- 重命名的好处是能区分不同场合使用不同数据类型。
- 为现有类型创建别名,定义易于记忆的类型名。
- 简化代码。
- 便于批量修改具体类型
参考链接:
https://blog.csdn.net/kkwant/article/details/80952162
https://www.jianshu.com/p/1741a6051140