前言
对于嵌入式开发尤其是底层驱动的程序员而言,位运算应该是使用频率非常高的一种运算方式了。因为硬件通常都需要按位进行运算,但是计算机软件的工作最小单位是字节。所以,正确使用位运算,是一个嵌入式开发人员的基本要求。
register关键字
作用
在嵌入式开发中,为了提高对经常使用的变量或者对效率有严格要求的变量的执行效率,编译器提供了register关键字,顾名思义,便是希望将变量存储在寄存器中,而不是存储在内存中。由于寄存器的读写速度远远高于内存的读写速度,所以寄存器中的数据执行效率更高。
但是由于CPU中的寄存器数量是有限的,所以,当没有剩余的寄存器可供变量使用时,即使程序员使用register声明的变量,最终也无法将其存储在寄存器中,而只能存储在内存中。
注意事项
当利用register关键字将变量存放在寄存器中时,程序员将不能对这个变量进行取地址操作。因为**&取地址是专门用于内存空间**的,但是寄存器的地址和内存的地址并不是一个概念。所以,对寄存器进行取地址操作,将会导致编译器报错。如下: