C++中寄存器变量

来源:百度知道 编辑:UC知道 时间:2024/05/29 20:42:24
#include <iostream>
using namespace std;

int main()
{
register int x;//书上说寄存器变量不是保存在内存中,它没有存储地址,因此不能进行取地址等运算。还说该程序存在错误,但我运行了,没错啊?能帮我解释一下,x=100;这句实现的过程吗??谢谢
x = 100;
cout << x << endl;

return 0;
}

register这个关键字已经形同虚设,除了在嵌入式编程上有点作用外,一般编程都不会用到。你要相信现在的编译技术已经非常成熟,编译器可以自动判断一些常用的变量然后将其放到寄存器里。

寄存器变量不在内存中,在CPU的寄存器中.
只要用了register修饰符,对该变量取地址的操作就被禁止.你把变量定义成寄存器中,它会一直占着寄存器不释放。计算机寄存器的个数是一定的。
这样变量少的你可以用,变量多了就不够用了。

而且即使你在内存中声明的普通变量最终还是要放到寄存器中的去执行,而那时对寄存器的处理是不需要你管的,除非是对效率要求特高,而且只对狠少的固定的几个变量处理,一般是不怎么用的。