目前程序中的变量都是存放在内存中,CPU找到内存中的操作数,送入运算器的寄存器,计算完成后再送回内存。如果程序中一些变量使用简单而频繁,那么可以直接将这些变量直接放在寄存器中,则访问变量的速度与指令执行的速度同步,程序的性能得到提高。
寄存器变量就是用寄存器存储的变量,寄存器变量的定义格式:register 类型指示符 变量标识符;
如 register int i;
并不是将所有的变量都定义成寄存器变量程序就会很快,因寄存器数量有限、容量有限,多余的变量无法存入寄存器,编译器会将其自动处理成普通变量;也不能说只定义了一个寄存器变量就一定会成功,编译器有权以任何理由阻值任何变量成为寄存器变量;也并不是普通变量肯定不能变成寄存器变量,编译器有权以任何理由将一个普通变量称为寄存器变量。
是不是有点绕,大家的集成开发环境IDE里都会有编译器优化选项,编译器也有自动优化功能,它知道什么时候将那个变量放入寄存器中速度最快。因此,现代编程中,register是一个完全不用用户去关心的关键字。
艾玛,说了半天在说废话。。。
再废话一句,register变量的生命周期跟自动局部变量一样,都是一次函数调用的时间。