详解C语言最快关键字 | 您所在的位置:网站首页 › 常用关键字c语言是什么 › 详解C语言最快关键字 |
register关键字
文章目录
register关键字前言一、register作用二、储存原件那么什么样的变量可以用register修饰呢?
总结
前言
提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例可供参考 一、register作用register关键字是将所修饰变量尽可能放到寄存器中,从而提高效率。 这里要注意只是可能,不一定绝对。 到底什么是寄存器呢? 那么为什么寄存器快呢? 二、储存原件我们知道计算机能用来储存的东西有很多,比如SSD(固态硬盘),内存,acache(高速缓存处理器),硬盘,光盘,甚至年代比较远的磁带等等都是用来储存的。 那么在这里我们只简单介绍计算机中各种储存的关系,详细请参考 https://blog.csdn.net/ILV_XJ/article/details/78026838 在储存金字塔中越往上,离CPU越近,效率越高,但是价格很贵。 越往下,离CPU越远,效率越低,越便宜。 因此电脑上register的数量是有限的,一个程序一般用一两个。 那么什么样的变量可以用register修饰呢?局部的(全局会导致CPU寄存器被长时间占用) 不会被写入的(写入就需要写回内存,后续还要读取检测的话,register的意义在哪呢?) 高频被读取的(提高效率所在) 如果要使用,请不要大量使用,因为寄存器数量有限 并且还有一点要注意!regist修饰的变量不能取地址, 寄存器中没有地址的概念,地址是在内存中相关的。 代码如下(示例): register int a = 0; printf("%d\n", a); printf("%d\n", &a);取地址此时就会报错 错误 C2103 寄存器变量上的“&” 总结register修饰的变量只是有可能在寄存器,无论是register使用过多,还是编译器不给你放到寄存器,因为不能确定因此register修饰的变量都不要取地址&。 |
CopyRight 2018-2019 实验室设备网 版权所有 |