【关键字】——register在C语言中的使用

简介: 【关键字】——register在C语言中的使用
  • register——寄存器

了解register之前,应该先认识认识寄存器,何为寄存器?

在计算机中,数据可以存储在远程二级存储(网盘,服务器),本地二级存储(本地磁盘),主存(也称内存),高速缓冲,还有寄存器。

早期内存读写速度与CPU的运行速度相当,CPU可以利用内存完成绝大多数的数据处理,而随着CPU的的运行速度的提升,内存读写速度已经无法满足CPU,于是设计出了存储空间比内存小很多,但是运行速度足够快的寄存器。

寄存器是CPU内部用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据和运算结果,即寄存器集成在CPU上。

寄存器是 CPU 的高速缓存 LI、 L2,缓存容量是在组装计算机时必问的 两个CPU 性能问题之一。缓存结构和大小对 CPU 的运行速度影响非常大,毕竟 CPU 的运行速度远大于内存的读写速度,更远大于硬盘。基于执行指令和热点数据的时间 局部性和空间局部性, CPU 缓存部分指令和数据,以提升性能。但由于 CPU 内部空 间狭小且结构复杂,高速缓存远小于内存空间。

寄存器是有限存储容量的高速存储部件,它们可用来暂存指令、数据和位址。

如果我们设置一个变量

int main(void)
{
  int i = 10;
  printf("%d\n",i);
  return 0;
}

原来这个变量i在内存中的栈区存储

int main(void)
{
  register int i = 10;
  printf("%d\n", i);
  return 0;
}

这里使用register可以让变量i的存储位置更换在寄存器上,以加快运行在处理变量i时的运行速度。

【注意】:现阶段的编译器的处理数据已经很强大,所有编译器会自动将需要进行快速处理的数据放在寄存器中,以便加快运行速度。

相关文章
|
存储 运维 监控
Apollo中的身份验证与授权:保护你的数据
Apollo中的身份验证与授权:保护你的数据
|
Java 编译器
【Java用法】Java关键字 —— instanceof
【Java用法】Java关键字 —— instanceof
496 0
|
存储 算法 编译器
【C语言】register 关键字详解
`register` 关键字是C语言中的一种存储类修饰符,它用于提示编译器将变量存储在CPU寄存器中,而不是在内存中。这种做法旨在提高变量访问的速度,因为访问寄存器比访问内存快得多。
476 1
|
存储 安全 数据安全/隐私保护
在Docker中,Docker安全么?
在Docker中,Docker安全么?
|
关系型数据库 MySQL Linux
Linux下搭建MySQL主从复制之一主一从架构
Linux下搭建MySQL主从复制之一主一从架构
453 0
|
存储 监控 Linux
【一键解锁神秘力量!】CentOS 7 磁盘分区与挂载终极指南 —— 从零到英雄的磁盘管理实战秘籍!
【8月更文挑战第9天】随着业务扩展和技术进步,服务器硬盘容量需求增加。本文通过实例介绍如何在CentOS 7中管理大容量硬盘(如1TB)。首先确认未使用的硬盘(如`/dev/sdb`),然后使用`fdisk`创建分区(一个200GB的日志分区和一个剩余空间的用户文件分区)。接着使用`mkfs.ext4`格式化分区,并创建挂载点(如`/mnt/log`和`/mnt/userfiles`)。最后,通过修改`/etc/fstab`实现分区的永久挂载。注意事项包括备份数据、合理规划分区以及定期监控磁盘使用情况等。这些步骤有助于高效管理和利用磁盘空间。
769 1
|
机器学习/深度学习 算法 数据可视化
花朵识别系统python+TensorFlow+Django网页界面+深度学习模型+卷积网络算法【完整代码】
花朵识别系统,基于Python实现,深度学习卷积神经网络,通过TensorFlow搭建卷积神经网络算法模型,并对数据集进行训练最后得到训练好的模型文件,并基于Django搭建可视化操作平台。
473 0
|
存储 SQL 弹性计算
手把手教你使用自建Hadoop访问全托管服务化HDFS(OSS-HDFS服务)
1. 服务介绍OSS-HDFS服务(JindoFS 服务)是一款云原生数据湖3.0存储产品,基于统一的元数据管理能力,在完全兼容 HDFS 文件系统接口的同时,提供充分的 POSIX 能力支持,能更好的满足大数据和 AI 领域丰富多样的数据湖计算场景。通过OSS-HDFS服务,无需对现有的 Hadoop/Spark 大数据分析应用做任何修改,通过简单的配置就可以像在原生HDFS中那样管理和访问数据
手把手教你使用自建Hadoop访问全托管服务化HDFS(OSS-HDFS服务)
|
监控 搜索推荐 Go
万字详解!在 Go 语言中操作 ElasticSearch
本文档通过示例代码详细介绍了如何在Go应用中使用`olivere/elastic`库,涵盖了从连接到Elasticsearch、管理索引到执行复杂查询的整个流程。
489 0
|
安全 Unix Linux