在程序运行时,根据需要到内存中相应的存储单元中调用,如果一个变量在程序中频繁使用,例如循环变量,那么,系统就必须多次访问内存中的该单元,影响程序的执行效率。因此,C\C++语言还定义了一种变量,不是保存在内存上,而是直接存储在CPU中的寄存器中,这种变量称为寄存器变量。
寄存器变量的定义形式是:
register 类型标识符 变量名
寄存器是与机器硬件密切相关的,不同类型的计算机,寄存器的数目是不一样的,通常为2到3个,对于在一个函数中说明的多于2到3个的寄存器变量,C编译程序会自动地将寄存器变量变为自动变量。
由于受硬件寄存器长度的限制,所以寄存器变量只能是char、int或指针型。寄存器说明符只能用于说明函数中的变量和函数中的形参,因此不允许将外部变量或静态变量说明为"register"。
register型变量常用于作为循环控制变量,这是使用它的高速特点的最佳场合。比较下面两个程序的运算速度。
/* 程序1 */
void main ( )
{
register int temp, i;
for ( i=0; i<=30000; i++ )
for ( temp=0; temp<=100; temp++ ) ;
printf ("ok\n");
}
/* 程序2 */
#include <stdio.h>
void main( )
{
int temp, i;
for ( i=0; i<=30000; i+&#
寄存器变量的定义形式是:
register 类型标识符 变量名
寄存器是与机器硬件密切相关的,不同类型的计算机,寄存器的数目是不一样的,通常为2到3个,对于在一个函数中说明的多于2到3个的寄存器变量,C编译程序会自动地将寄存器变量变为自动变量。
由于受硬件寄存器长度的限制,所以寄存器变量只能是char、int或指针型。寄存器说明符只能用于说明函数中的变量和函数中的形参,因此不允许将外部变量或静态变量说明为"register"。
register型变量常用于作为循环控制变量,这是使用它的高速特点的最佳场合。比较下面两个程序的运算速度。
/* 程序1 */
void main ( )
{
register int temp, i;
for ( i=0; i<=30000; i++ )
for ( temp=0; temp<=100; temp++ ) ;
printf ("ok\n");
}
/* 程序2 */
#include <stdio.h>
void main( )
{
int temp, i;
for ( i=0; i<=30000; i+&#