嵌入式学习心得:关键字和宏定义
2016-12-20 22:45
169 查看
宏定义的作用:避免幻数,提高维护性,灵活。缺点在于傻瓜式替换
定义变量的三种方式:define const enum
宏函数和自定义函数优缺点;
自定义函数效率低,宏函数代码实现简单而且频繁调用,编译时间换空间
inline内敛函数;空间换执行时间,条件编译的作用:#ifdef 和 #ifndef: 防止头文件重复包含导致重复定义。
关键字:
register 把变量变成变成寄存器变量,请求编译器尽可能的把变量保存在寄存器中,提高运行效率
CPU 三大组成部分,
运算器, 控制器 存储器(寄存器)
频繁被访问的变量,用register 修饰
注意register 只能修饰局部变量,不能修饰全局变量和函数
register 变量不在内存中存储,所以不能用&取地址
register 修饰的变量必须是CPU所接受的
static关键字: static 只修饰局部变量,保存在数据区静态数据区,使这个局部变量生命周期延长到整个函数结束之后再释放。
static 修饰全局变量(静态函数)只能在本文件上访问,不能在其他文件访问。
static 既可以修饰变量,又可以修饰函数。
extern 关键字:外部声明,声明变量在外部定义;声明变量在其他的文件定义当前文件可以访问。
const 只读变量,修饰变量名,不是修饰对应的空间。
作用:const 离谁近,谁就不能变
修饰变量的初始化值要给变量
volatile 关键字: (硬件)
防止编译器优化
评价一个函数优先考虑一下两个方面:
入口函数检查:
有无const函数
定义变量的三种方式:define const enum
宏函数和自定义函数优缺点;
自定义函数效率低,宏函数代码实现简单而且频繁调用,编译时间换空间
inline内敛函数;空间换执行时间,条件编译的作用:#ifdef 和 #ifndef: 防止头文件重复包含导致重复定义。
关键字:
register 把变量变成变成寄存器变量,请求编译器尽可能的把变量保存在寄存器中,提高运行效率
CPU 三大组成部分,
运算器, 控制器 存储器(寄存器)
频繁被访问的变量,用register 修饰
注意register 只能修饰局部变量,不能修饰全局变量和函数
register 变量不在内存中存储,所以不能用&取地址
register 修饰的变量必须是CPU所接受的
static关键字: static 只修饰局部变量,保存在数据区静态数据区,使这个局部变量生命周期延长到整个函数结束之后再释放。
static 修饰全局变量(静态函数)只能在本文件上访问,不能在其他文件访问。
static 既可以修饰变量,又可以修饰函数。
extern 关键字:外部声明,声明变量在外部定义;声明变量在其他的文件定义当前文件可以访问。
const 只读变量,修饰变量名,不是修饰对应的空间。
作用:const 离谁近,谁就不能变
修饰变量的初始化值要给变量
volatile 关键字: (硬件)
防止编译器优化
评价一个函数优先考虑一下两个方面:
入口函数检查:
有无const函数
相关文章推荐
- C语言深度剖析学习心得之关键字
- 嵌入式学习方法-----关于arm+linux编程开发的学习心得
- 嵌入式学习心得(八)
- 嵌入式学习心得(十二)关于一维二维指针的地址
- 嵌入式学习心得(十一)
- 学习心得:嵌入式linux开发环境的建立
- 嵌入式每日学习心得2017.07.11
- 嵌入式学习心得(七)
- 嵌入式学习心得(六)
- 嵌入式每日学习心得2017.07.07
- 学习心得:嵌入式linux开发环境的建立
- @property关键字学习心得
- 韦东山老师对于嵌入式学习的心得体会
- 嵌入式第一周学习心得
- 嵌入式学习心得(三)
- OpenCL学习笔记 - 关键字 宏定义
- 单片机和嵌入式的一些学习心得
- 嵌入式学习心得(一)
- 嵌入式学习心得(十)变量和常量以及内存
- 嵌入式每日学习心得2017.07.10