首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >"register“关键字在C中?

"register“关键字在C中?
EN

Stack Overflow用户
提问于 2009-02-24 00:12:43
回答 15查看 124.1K关注 0票数 298

register关键字在C语言中有什么作用?我读到过它是用于优化的,但在任何标准中都没有明确的定义。它是否仍然相关?如果是,您将在什么时候使用它?

EN

回答 15

Stack Overflow用户

回答已采纳

发布于 2009-02-23 16:14:36

这是对编译器的一个提示,该变量将被大量使用,如果可能,您建议将其保存在处理器寄存器中。

大多数现代编译器都是自动执行的,而且比我们人类更擅长挑选它们。

票数 370
EN

Stack Overflow用户

发布于 2009-02-23 18:01:44

令我惊讶的是,没有人提到你不能接受寄存器变量的地址,即使编译器决定将变量保存在内存中而不是寄存器中。

因此,使用register什么也得不到(不管怎样,编译器将自己决定将变量放在哪里)并丢失&运算符--没有理由使用它。

票数 75
EN

Stack Overflow用户

发布于 2009-02-23 16:14:15

它告诉编译器尝试使用CPU寄存器而不是RAM来存储变量。寄存器位于CPU中,访问速度比RAM快得多。但这只是对编译器的一个建议,它可能不会坚持到底。

票数 39
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/578202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档