详解C语言最快关键字 您所在的位置:网站首页 常用关键字c语言是什么 详解C语言最快关键字

详解C语言最快关键字

2024-06-28 09:21| 来源: 网络整理| 查看: 265

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 实验室设备网 版权所有