C语言里的关键字:register_c语言里的关键字是什么意思

register属于存储类关键字。其它还有auto、extern、static、const、volatile、restricted等。

如下例。需要操作一个比较大的二维数组10000×5000。

register int i, j;

for ( i = 0; i < 10000; i++)

for ( j = 0; j < 5000; j++)

p[i][j] = 5*p[i][j];

在定义行下标与列下标这两个变量时,前缀了关键字register。这是为了提高这段代码的运行速度,把需要频繁使用的两个下标变量放在寄存器里。本来在内存里的变量需要先从内存里取出到CPU的寄存器里。显然,这样就大大提高了处理大数组的速度。

不过,关键字register仅仅是对编译的建议,不是命令。因为,CPU的寄存器是有限的。当你所用用CPU的寄存器有富余时,才会把这两个变量放在寄存器里。

有不少人为追求速度,用了许多register变量,这是没用的,编译器肯定会忽视大部分register前缀的。

原文链接:,转发请注明来源!