C语言提供了另一种变量,即寄存器变量。这种变量存放在CPU的寄存器中,使用时,不需要访问内存,而直接从寄存器中读写,这样可提高效率。
寄存器变量是个临时变量,当调用完之后,会自动释放,以节约内存空间,提高程序效率。
寄存器变量没有地址,没有地址就不能用指针变量指向它。
寄存器变量的说明符是register,对于循环次数较多的循环控制变量及循环体内反复使用的变量均可定义为寄存器变量。
C语言可以把变量定义为寄存器类型的,将数据直接存放在CPU的寄存器中,使用关键字register定义变量。
例如registera=123;定义a为寄存器类型变量。
对于register变量需要注意的几点:
(1)使用register定义的变量尽可能存放到寄存器中,但不绝对。
(2)定义 的变量一般整数(int)为宜。
(3)定义的变量,只要涉及到该变量的地址时,编译器都会报错,如"&a",数组首地址a。
(4)也可以定义指针类型的变量,如register*ptr=&c,c="abcde",c不是register变量。*ptr='a',ptr++移动4个字节。
(5)不能使用sizeof(register)。