C语言寄存器变量register
来源:互联网 发布:c语言数据类型和范围 编辑:程序博客网 时间:2024/06/10 04:20
用register声明的变量是寄存器变量,是存放在CPU的寄存器里的。而我们平时声明的变量是存放在内存中的。虽说内存的速度已经很快了,不过跟寄存器比起来还是差得远。 寄存器变量和普通变量比起来速度上的差异很大,毕竟CPU的速度远远大于内存的速度。寄存器有这么两个特点,一个是运算速度快,一个是不能取地址。 学过C的都应该知道每一个变量在内存中都占有一定的的空间,来存放数据。但是在寄存器中的变量是不能取地址的,编译器会报错。
来我们看看寄存器变量和普通话的变量的速度到底能差多少。
这段代码运行用了0.952秒
这段代码运行用了0.094秒
差距如此之大。
实际使用时,底层硬件环境的实际情况对寄存器变量的使用会有一些限制。每个函数中只有很少的变量可以保存在寄存器中,且只允许某些类型的变量。但是,过量的寄存器声明并没有什么害处,这是因为编译器可以忽略过量的或者不支持的寄存器变量声明。另外,无论寄存器变量实际上是不是存放在寄存器中,它的地址都是不能访问的。在不同的机器中,对寄存器变量的数目和类型的具体限制也是不同的。
——《C程序设计语言(第二版) Brain W.Kernighan & Dennis M.Ritchie》
0 0
- C语言寄存器变量register
- C语言中哪些变量可以做register寄存器变量
- 从头认识C—寄存器变量register
- register 寄存器变量
- C学习笔记之:Register(寄存器类型变量)
- C语言中register类型变量
- C语言中变量的属性(auto static register)
- C语言中register类型的变量有什么意义
- C语言register关键字
- C语言register关键字
- C语言的register
- C语言关键字register
- C语言register关键字
- c语言register关键字
- C 语言 register 关键字
- C语言关键字register
- C语言register关键字
- c语言 register
- java实现文件夹的复制(含代码)
- Tomcat启动出错: Cannot rename original file to $TOMCAT_HOME$conf\tomcat-users.xml.old
- java从jar包中获取资源文件
- NFC模组,开发NFC功能 只要几条指令的事情
- 字符串去重/C#
- C语言寄存器变量register
- 工厂方法模式(三):日志记录器的工厂方法模式解决方案,反射与配置文件
- csdn 开贴篇!
- Xcode自动注释插件
- Android-------模拟用户登录界面(4)
- 如何访问外网,上FACEBOOK,TWITTER等的方法
- linux服务器状态、性能相关命令
- LeetCode1 Two Sum
- PLC学习视频