详解C语言最快关键字——register
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修饰的变量都不要取地址&。
详解C语言最快关键字——register相关推荐
- C语言中定义常量的关键字是什么,C++_详解C语言中const关键字的用法,关键字const用来定义常量,如 - phpStudy...
详解C语言中const关键字的用法 关键字const用来定义常量,如果一个变量被const修饰,那么它的值就不能再被改变,我想一定有人有这样的疑问,C语言中不是有#define吗,干嘛还要用const ...
- 详解go语言的array和slice 【二】
上一篇 详解go语言的array和slice [一]已经讲解过,array和slice的一些基本用法,使用array和slice时需要注意的地方,特别是slice需要注意的地方比较多.上一篇的最后讲 ...
- #转载:杨辉三角形实现过程详解-c语言基础
杨辉三角形实现过程详解-C语言基础 十一一个人 2018-12-26 06:45:45 6465 收藏 28 最后发布:2018-12-26 06:45:45首发:2018-12-26 06:45:4 ...
- DBus glib 各数据类型接收与发送详解—C语言(3)
DBus glib 各数据类型接收与发送详解-C语言(3) 动机 前置知识 正文 Python 测试服务 使用 C 实现复杂数据类型的传递 DICT_DICT ObjectPath_Dict_Stru ...
- 武林c语言,详解C语言中条件编译
预处理器提供条件编译,程序的不同部分可以在不同的条件下编译,从而产生不同的目标代码文件,这对于程序移植和调试非常有用,本文是武林技术频道小编给为大家带来的详解中条件编译,一起来了解一下吧! 通常情况, ...
- c语言malloc用法 数组,详解C语言用malloc函数申请二维动态数组的实例
详解C语言用malloc函数申请二维动态数组的实例 C语言在程序运行中动态的申请及释放内存十分方便,一维数组的申请及释放比较简单. Sample one #include int main() { c ...
- php怎么求最小公倍数,C++_详解C语言求两个数的最大公约数及最小公倍数的方法,求两个正整数的最大公约数nbs - phpStudy...
详解C语言求两个数的最大公约数及最小公倍数的方法 求两个正整数的最大公约数 思路:这是一个很基本的问题,最常见的就是两种方法,辗转相除法和辗转相减法.通式分别为 f(x, y) = f(y, x%y) ...
- 你是真的“C”——详解C语言函数模块知识(上篇)
详解C语言函数模块知识(上篇)
- php 微信 公众 平台,微信公众平台代码详解-php语言(一)
2.这里把它粘贴出来,以注释的形式进行讲解. 3.首先我们要知道一些基础的知识: (1)要有自己的网站--公网环境,其中一个php页面处理微信消息: (2)微信公众平台和网站服务器之间是通过XML数据 ...
最新文章
- 统计学常犯的18个错误,请务必跳过这些坑!
- python温度转换代码_用python编写一个名为“convert_temp”的温度转换函数
- 11月份写什么,由你来决定——学堂需求调查
- 手把手图文并茂教你发布Android开源库
- Android性能优化-过度绘制解决方案
- 使用matlab计算并绘制连续信号的傅里叶变换
- 软件测试书籍有哪些_软件测试书籍推荐
- 让你的手机不输kindle的3款epub阅读器
- oracle的安装(因为oracle版本安装各有差异,今天先讲最简单的安装,至于每个版本的具体安装度妈会讲,下一章同样会介绍可视化工具)
- 实在不行来瓶敌敌畏吧!Scrapy框架爬取某农药肥料网站+异步Mysql数据库存储
- 单总体分布卡方拟合优度检验
- 火影忍者ol手游服务器注册上限怎么办,火影忍者ol手游服务器人数爆满怎么进_服务器爆满解决方法...
- Frida-dexdump使用,frida环境配置
- python 用cx_Freeze打包程序详细解读setup.py
- 如何利用等比频宽公式将信号分解成部分重叠的子频段
- Cisco(60)——DHCPv6
- 【YOLO学习笔记——数据集】之一YOLO数据集制作2
- 人工神经网络的应用价值,人工智能神经网络应用
- 【MarkDown】CSDN Markdown之时间轴图timeline详解
- 油液颗粒计数器在工业自动化进程中带来的巨大效益
热门文章
- ABI and ISA
- 机器人系统设计与制作:Python语言实现2.4 用LibreCAD生成机器人的二维CAD图
- 观点 | 银行业数据应用的瓶颈与打开思路
- ACM--博弈论入门--几种博弈游戏类型+题集
- python开发cs程序_CSE209代做、代写Computer Graphics、代做CS/python编程设计代写Python程序|代做Processing...
- SecureCRT命令行参数
- 欧拉定理及扩展(附证明)
- latex怎样让题号顶格_latex proof顶格
- OTFS白皮书-翻译
- solrcloud入门详细使用教程