寄存器变量

寄存器变量

  寄存器变量是将变量放入寄存器中,主要用在使用频率较高的变量,避免了来回从内存中读取.

简单认识寄存器

int num = 100;
__asm
{
	mov eax, num		//将num的放入eax寄存器中
	add eax, 15		//将eax寄存器中的值加上15	
	mov num, eax	        //将eax寄存器的值赋值给num
}
printf("%d", num);

使用寄存器变量

//声明寄存器变量
register int x;			
register int y;

对比一下,使用寄存器变量前后

1.未使用寄存器变量

time_t start, end;
time(&start);		        //获取当前时间,放入start变量中

double sum = 0.0;
int i = 0;
for (; i < 400000000; i++)
{
	sum += i;
}
printf("%f\n", sum);

time(&end);			//获取当前时间,放入end变量中
printf("%d", (unsigned int)(end - start));

2.使用寄存器变量

time_t start, end;
time(&start);		        //获取当前时间,放入start变量中

register double sum = 0.0;
register int i = 0;
for (; i < 400000000; i++)
{
	sum += i;
}
printf("%f\n", sum);
time(&end);			//获取当前时间,放入end变量中
printf("%d", (unsigned int)(end - start));

3.对比测试结果


简单总结

 1.  寄存器变量可以提高程序的性能
 2.  寄存器变量不能是全局的静态变量
 3.  寄存器数是有限的,使用太多的寄存器变量,会自动降为普通变量
秋风 2016-09-04