一。inline
inline关键字一般用于定义内联函数,所谓内联函数与一般函数的区别是:
1.内联函数一般比较短小,只有几行代码
2.调用内联函数没有调用一般函数所必需的保护堆栈的开销,调用时直接把它嵌入到调用函数中。
inline与宏定义十分相似,但是必须知道它们之间的区别:调用inline时会进行类型检查,而宏定义是没有类型检查的
二。volatile
volatile在英语中的意思是”易变的“,用它定义的变量在程序编译阶段不做优化,每次都不必须从内存中读取变量的值。
volatile有以下几个方面的应用:
i.并行设备的硬件寄存器(如:状态寄存器)
ii。一个中断服务子程序中会访问到的非自动变量
iii。多线程应用中被几个人物共享的变量。
三。static
static比较常用
1.用static定义变量的作用:
I。限制变量的作用域:只能在变量定义的文件中使用
II。延长变量的生存期:从程序开始一直到程序结束变量一直存在
III。初始化变量:如果定义时不显式初始化,变量会被自动初始化为0
2.用static定义函数的作用:
I。限制函数的作用域:只能在函数定义的文件中使用
II。延长函数的生存期:从程序开始一直到程序结束函数一直存在