宏定义的作用:避免幻数,提高维护性,灵活。缺点在于傻瓜式替换
定义变量的三种方式:define const enum
宏函数和自定义函数优缺点;
自定义函数效率低,宏函数代码实现简单而且频繁调用,编译时间换空间
inline内敛函数;空间换执行时间,条件编译的作用:#ifdef 和 #ifndef: 防止头文件重复包含导致重复定义。
关键字:
register 把变量变成变成寄存器变量,请求编译器尽可能的把变量保存在寄存器中,提高运行效率
CPU 三大组成部分,
运算器, 控制器 存储器(寄存器)
频繁被访问的变量,用register 修饰
注意register 只能修饰局部变量,不能修饰全局变量和函数
register 变量不在内存中存储,所以不能用&取地址
register 修饰的变量必须是CPU所接受的
static关键字: static 只修饰局部变量,保存在数据区静态数据区,使这个局部变量生命周期延长到整个函数结束之后再释放。
static 修饰全局变量(静态函数)只能在本文件上访问,不能在其他文件访问。
static 既可以修饰变量,又可以修饰函数。
extern 关键字:外部声明,声明变量在外部定义;声明变量在其他的文件定义当前文件可以访问。
const 只读变量,修饰变量名,不是修饰对应的空间。
作用:const 离谁近,谁就不能变
修饰变量的初始化值要给变量
volatile 关键字: (硬件)
防止编译器优化
评价一个函数优先考虑一下两个方面:
入口函数检查:
有无const函数