首页  >  文章  >  后端开发  >  C 中的“register”和“int”有什么区别?

C 中的“register”和“int”有什么区别?

Barbara Streisand
Barbara Streisand原创
2024-10-24 05:09:30553浏览

What is the Difference Between 'register' and 'int' in C  ?

C 语言中 'register' 和 'int' 的区别

在 C 语言中声明变量时,开发者可以使用 'register'关键字提示编译器特定变量应驻留在处理器寄存器中而不是内存中。例如,考虑以下代码:

int x = 7;

和:

register int x = 7;

这两个示例之间的区别在于“register”关键字的用法。在第一种情况下,“x”变量被声明为整数并将驻留在内存中。在第二种情况下,“register”关键字向编译器建议将“x”存储在处理器寄存器中是有益的。

但是,需要注意的是,编译器可以自行决定忽略这一点建议。正如 Herb Sutter 在“不是的关键字(或另一个名字的评论)”中断言:

“寄存器说明符与自动说明符具有相同的语义......”

换句话说,使用“register”只是指示编译器以类似于“auto”关键字的方式分配“x”,这对变量的位置没有特定的影响。因此,虽然“register”传达了对寄存器存储的偏好,但其实际实现由编译器自行决定。

以上是C 中的“register”和“int”有什么区别?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn