1、register
在函数内定义变量时,默认是 auto 类型,变量存储在内存中,当程序用到该变量时,由控制器发出指令将内存中该变量的值送到运算器,计算结束后再从运算器将数据送到内存。如果一个变量用 register 关键字修饰,编译器则尽可能将该变量存放在CPU的内部寄存器中,这样就不用通过内存寻址来访问变量,可以大大提高访问效率。
2、volatile
volatile关键字修饰的变量或地址,则每次使用时,变量的值或地址指向的值都要重新从内存中获取。如果没有用volatile关键字修饰,编译器优化时,在同一进程中当上一次对这个地址操作的值在该进程中没有被修改时,他会自动把上次读的数据取出来而不会重新从内存地址中获取内容。该情况在嵌入式系统、驱动编程中经常使用,一般是对寄存器或硬件I/O端口的操作。
3、inline
inline关键字修饰的函数称为内联函数,在程序编译时,编译器会将程序中出现的对该函数的调用表达式用该函数的函数体来进行替换。类似于宏替换,不过相比宏替更容易理解,不易出错。inline关键字多用于定义函数体代码短且调用频繁的函数,以目标代码的增加为代价来节省函数频繁跳转的时间成本。
4、。。。。。。
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/iot_hept/article/details/47719679