微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

何时在C中使用寄存器?

我有这样的东西
register unsigned int a,b,c;
int n;
for (n = 0; n < 10; ++n){
c = a + b
b = a
a = c
array[n] = c;
}

它做什么,没关系.代码以现在的方式快速运行,如果注册关键字被删除,速度会更慢.但是,当我在int n之前添加注册表时,它的运行速度比现在慢,但比没有使用寄存器要快.

谁可以给我解释一下这个?谢谢.

解决方法

寄存器给编译器一个提示,将变量置于寄存器中,而不是内存/堆栈空间.在某些情况下,每个变量都不会有足够的寄存器来放置这个关键字,因此将其放置在太多的变量上可能会迫使其他一些数据库重新出现.

这只是一个提示,而且编译器不必这么做.

原文地址:https://www.jb51.cc/c/114429.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐