写点什么

【C 语言】register 关键字

作者:謓泽
  • 2022-11-21
    江西
  • 本文字数:998 字

    阅读完需:约 3 分钟

【C语言】register 关键字

🚩write in front🚩   

🔎大家好,我是謓泽,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎

🏅2021 年度博客之星物联网与嵌入式开发 TOP5~2021 博客之星 Top100~阿里云专家博主 & 阿里云星级博主~掘金⇿InfoQ~51CTOP 创作者(创作新人榜 No.8)~[CSDN]周榜 373﹣总榜 1055 ⇿ 全网访问量 40w+🏅

🆔本文由 謓泽 原创 发布在 InfoQ 如需转载还请通知⚠

📝个人主页-InfoQ - 促进软件开发及相关领域知识与创新的传播-极客邦

🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝

✉️我们并非登上我们所选择的舞台,演出并非我们所选择的剧本📩

⑩⑨ register ⇿ 寄存器

🍊概述⇢register 最快的关键字,寄存器的功能是存储二进制代码,它是由具有存储功能的触发器组合起来构成的。一个触发器可以存储 1 位二进制代码,故存放 n 位二进制代码的寄存器,需用 n 个触发器来构成。

作用⇢通过 register 变量,程序可以把某个局部变量指定存放在计算机的某个硬件处理器当中,而不是内存当中。这样做的好处是可以提高程序的运行程序的运行速度。不过,这只是反映某个程序员的主观意愿。 

描述⇢register 变量称为寄存器存储类变量。

注意⇢编译器是可以忽略 register 对变量的修饰。 

示例⇢"存储的金字塔如下⇣"


📘示例代码如下⇣ 

#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>int main(void){	register int i = 0;	printf("%d", &i);	int j = 100000;	while (j)	{		j--;	}	return 0;}
复制代码

✔示例代码的分析如下⇣

①.寄存器修饰变量的时候是不能取出地址的。 


②.在多次重复的时候,就可以对其使用寄存器修饰,此时我们需要根据情况来。

说明⇢如果想有效的利用寄存器 register 关键字,必须像汇编语言程序那样了解处理器内部结构,知道可用于存放变量的寄存器的数量、种类、以及工作方式。但是,对于不同计算机对于这些细节可能是不同的。因此,对于一个具备可以移植性的程序来说 register 作用并不大。

注意⇢寄存器是离 CPU 越近,所以它的效率是非常的高的,从上述图中即可看出来。

说明⇢寄存器的本质、在硬件的层面上,提高计算机当中的运行效率。因为不需要从内存里读取数据的。

🍅寄存器的核心知识

我们通常采用局部变量采用 register 的,全局变量会导致 CPU 当中的寄存器被长时间占用。

一个变量被存放到寄存器当中,那么这个变量的效率就会大大的提高不需要缓存读取。

如果要使用,最好不用大量的使用,因为寄存器的数量是有限的。

发布于: 刚刚阅读数: 3
用户头像

謓泽

关注

一句话介绍下自己~ 2022-01-29 加入

谁也不知道旅途的终点是怎么样的 现在只不过是刚启航⛳ 便要全力以赴!终点必将是星辰🌠大海🌊 2021年度博客之星物联网与嵌入式开发TOP5 2021博客之星Top100 阿里云专家博主^星级博主 CSDN⇿掘金⇿InfoQ[创作者]

评论

发布
暂无评论
【C语言】register 关键字_11月月更_謓泽_InfoQ写作社区