对register寄存器变量的总结如下:
1.寄存器变量可以用来优化加速c语言程序

2.声名只需在类型前多加register 即可,eg register int quick; (quick 就是一个整形的寄存器变量)

3.register只是一个建议型关键字,能不能声名成功还取决于编译器(建议型的关键字还有c++中的 inline),若不幸没有请求成功,则变量变成一个普通的自动变量。

4.是无法对一个register变量取地址的(因为寄存器变量多放在寄存器而非内存中,内存有地址,而寄存器是无地址的)

5.即便没有请求成寄存器变量,没有如愿的放入寄存器中,但是,依然不能对他取地址,因为他已经被声明为register了,就是这么任性

什么情况用寄存器变量:
当对一个变量频繁被读写时,需要反复访问内存,从而花费大量的存取时间。为此,C语言提供了一种变量,即寄存器变量。这种变量存放在CPU的寄存器中,使用时,不需要访问内存,而直接从寄存器中读写,从而提高效率。寄存器变量的说明符是register。对于循环次数较多的循环控制变量及循环体内反复使用的变量均可定义为寄存器变量,而循环计数是应用寄存器变量的最好候选者。

什么变量可以声明为寄存器变量:
只有局部自动变量和形参才可以定义为寄存器变量。因为寄存器变量属于动态存储方式,凡需要采用静态存储方式的量都不能定义为寄存器变量,包括:模块间全局变量、模块内全局变量、局部static变量。

register寄存器变量相关推荐

  1. C语言 --- Register 寄存器变量解析

    Register 寄存器变量 定义 register声明告诉编译器,它所申明的变量在程序中使用频率较高.其思想是:将register变量到寄存器中,这样可以使程序更小.执行速度更快.但是编译器可以忽略 ...

  2. 【C语言必经之路——第1节】自动变量(auto)外部变量(extern)静态变量(static)寄存器变量(register)

    目录 一.auto变量 二.extern变量 三.static变量 static的作用为: 1.修饰全局变量 2.修饰局部变量 3.修饰函数 四.register变量 一.auto变量 若定义一个局部 ...

  3. C语言寄存器变量register

    转载自 https://blog.csdn.net/mouse_ts/article/details/45097603 用register声明的变量是寄存器变量,是存放在CPU的寄存器里的.而我们平时 ...

  4. c语言复习--寄存器变量(register)

    一般变量储存于内存中,如果有需要反复调用的,则会因访问流程的复杂影响运行效率,因此有另一类变量直接存储在寄存器之中. 其说明形式为:            register     类型标识符    ...

  5. 变量(自动变量、静态变量、寄存器变量、外部变量)与C的内存分配malloc/free、calloc/recalloc

    C语言中的4种存储类别:自动变量(auto).静态变量(static).寄存器(register).外部变量(extern). 自动变量 通常定义在自定义函数内或代码段(用{}括起来的)定义的变量,都 ...

  6. 【C语言】寄存器变量

    文章目录 1.寄存器变量 2.寄存器变量速度测试 1.寄存器变量 在程序运行时,根据需要到内存中相应的存储单元中调用,如果一个变量在程序中频繁使用,例如循环变量,那么,系统就必须多次访问内存中的该单元 ...

  7. C语言中变量存储类别——自动变量,寄存器变量,静态外部链接;

    c提供了多种不同模型或存储类别在内存中存储数据. 作用域: 作用域描述程序中可访问标识符的区域. 作用域描述了程序中可以访问一个标识符的一个或多个区域.即变量的可见性. 一个变量的作用域可以是代码块作 ...

  8. 「C语言」寄存器变量与内存变量

    参考链接: 寄存器变量是什么?及它的存储种类有哪些? 静态变量.自动变量与寄存器变量的存储 寄存器变量-百度百科 前两天看师兄给的C语言的一本小册子,看到: 内存变量或寄存器变量是指进程运行过程中的变 ...

  9. C/C++中的寄存器变量

    变量通常储存在计算机内存中.如果幸运的话,寄存器变量储存在CPU 的寄存器中,或者概括地说,储存在最快的可用内存中.与普通变量相比, 访问和处理这些变量的速度更快.由于寄存器变量储存在寄存器而非内存中 ...

最新文章

  1. HDOJ HDU 1106 排序 ACM 1106 IN HDU
  2. android textView 替文字添加下划线 删除线
  3. 唯一被图灵求婚的女人,与他并肩破译纳粹德国 Enigma 密码,拯救千万人生命!| 人物志...
  4. bzip2recover cat chattr chgrp chmod
  5. 如何创建 Visual Studio 2017 RC 离线安装包
  6. awk --- 常用技巧
  7. bootstrap modal 关闭时右侧滚动条消失,页面左移的解决方法
  8. 网吧用计算机性能配件清单,网吧主机都是什么配置?看看清单就知道!
  9. minus subtract deduct这三个单词的区别
  10. 文华学院大学计算机基础考试数据库ip,文华学院大学计算机基础模拟试卷
  11. Python案例分析之客户信贷预测模型
  12. Snort - manual 笔记(二)
  13. NMS(Non-Maximum Suppression,非极大值抑制)解析
  14. 在红帽linux创建目录,redhat linux建文件系统
  15. Linux在加载模块时报insmod: error inserting xxx.ko -1 File exists这个错
  16. linux批量修改文件名多目录,Linux下批量修改文件名
  17. linux kernle 同步原语
  18. 其他公司应用Ceph的具体方案
  19. 计算机考研数据结构考试大纲,2017考研大纲:计算机考研大纲文字版之数据结构...
  20. Axure RP9 进度条设置

热门文章

  1. Pro/E二次开发入门详细教程
  2. Linux quotacheck失败
  3. 特征选择——Matrix Projection算法研究与实现
  4. JavaScript权威指南(原书第7版) 犀牛书
  5. [javascript权威指南][阅读笔记]一
  6. 编译原理实验--实验二 递归下降法判断算术表达式的正确性--Python实现
  7. Prometheus 监控体系
  8. 断点续传java代码
  9. Top-level statements must precede namespace and type declarations. [Test]csharp(CS8803)
  10. xss level1-7