在c语言中,register是一种关键字,用于指示编译器,将变量存储在处理器中的寄存器中,从而提高程序的运行效率。
使用register关键字声明的变量叫寄存器变量,寄存器变量存储在CPU的寄存器中,CPU访问CPU内部寄存器要比访问内存中的变量要快,因此使用register声明的变量可以提高运行速度。
值得注意的是,变量只有在能放到寄存器里才能真正的成为“寄存器变量”,可是,一般来说,使用register进行声明指示对编译器的“建议”。编译器可以根据需要忽略我们的建议,放在内存中。。。
另外,由于寄存器的数量是有限的,所以使用register关键字也有一些限制:
1.不能对register变量取地址。因为寄存器不能通过地址直接访问。
2.不能对register变量进行初始化,也就是,在声明时不能赋初值。
3.编译器可能会忽略你的声明。
4.其实,现在的计算机处理器已经有极高的并行处理能力,内存访问的速度并不是很慢,有时可能并不需要register声明。