当前位置:首页阅读

一步带您了解C语言中的 register 关键字

一步带您了解C语言中的 register 关键字

c++

一步带您了解C语言中的 register 关键字

寄存器比内存访问要快,因此可以使用register关键字将C程序中最常用的变量放入寄存器中。关键字register会向编译器提示可以将给定变量放入寄存器中。编译器可以选择是否将其保存在寄存器中。通常,编译器自己进行优化,然后将变量放入寄存器中。

一步带您了解C语言中的 register 关键字_WWW.XUNWANGBA.COM

1.如果对寄存器变量使用&运算符,则编译器可能会给出错误或警告(取决于您使用的编译器),因为当我们说变量是寄存器时,它可能存储在寄存器中而不是内存中,并且寄存器的访问地址无效。请尝试以下程序。

#includestdio.h

int main() {register int i = 10;int* a = i;printf(%d, *a);

getchar();return 0; }

2.register关键字可以与指针变量一起使用。显然,寄存器可以具有存储位置的地址。以下程序不会有任何问题。

#includestdio.h

int main() {int i = 10;register int* a = i;printf(%d, *a);

getchar();return 0; }

3.寄存器是一个存储类,并且C不允许变量使用多个存储类说明符。因此,register不能与static一起使用。请尝试以下程序。

#includestdio.h

int main() { int i = 10; register static int* a = i; printf(%d, *a);

getchar(); return 0; }

4.寄存器只能在一个块内使用(局部),而不能在全局范围内(在主外部)使用。

#include stdio.h // 错误(全局范围)

register int x = 10; int main() { // 有效(在一个块内)

register int i = 10; printf(%d\n, i);

printf(%d, x); return 0; }

编译错误:

prog.c:3:14:错误:未为“ x”指定寄存器名称 注册int x = 10; //错误(全局范围)^

5.C程序中对寄存器变量的数量没有限制,但重点是编译器可能会将某些变量放入寄存器中,而有些则不会。

如果您发现上述文章中有任何不正确之处,或者您想分享有关register关键字的更多信息,请发表评论。

有想领取学习资料以及教程的请查看下方图片:

一步带您了解C语言中的 register 关键字_WWW.XUNWANGBA.COM

一步带您了解C语言中的 register 关键字)宝,都看到这里了你确定不收藏一下??