C语言经典100例题(45)--学习使用register定义变量的方法

目录

题目

问题分析

代码

运行结果


题目

学习使用register定义变量的方法

问题分析

register是做声明的,为了提高效率。 register变量不能做取地址运算符&操作。

声明变量具有register储类型就要求编译器把变量存储在寄存器中,而不是像其他变量一样保留在内存中。 (寄存器是驻留在计算机CPU中的存储单元。存储在寄存器中的数据会比存储在普通内存中的数据访问和更新的速度更快。)指明变量的存储类型是register是一种请求,而不是命令。编译器可以选择把register型变量存储在内存中。

register存储类型只对声明在块内的变量有效。register变量具有和auto变量一样的存储期限、作用域和链接。但是,register变量缺乏auto变量所具有的一种性质: 由于寄存器没有地址,所以对register变量使用取地址运算符&是非法的。即使编译器选择把变量存储在内存中,这一限制仍适用。

regste存储类型最好用于需要频繁进行访问或更新的变量。例如,在for语句中的循环控制变量就比较适合声明为register。

代码

复制代码
#include<stdio.h>
void main()
{
	register int i;
	int tmp = 0;
	for (i = 1;i <= 100;i++)
		tmp += i;
	printf("The sum is %d\n", tmp);
}

运行结果

相关推荐
小徐不会敲代码~2 分钟前
Vue3 学习2
前端·javascript·学习
我命由我123453 分钟前
Python Flask 开发 - Flask 快速上手(Flask 最简单的案例、Flask 处理跨域、Flask 基础接口)
服务器·开发语言·后端·python·学习·flask·学习方法
大飞记Python5 分钟前
从零配置Python测试环境:详解路径、依赖与虚拟环境最佳实践
开发语言·python·环境配置·安装目录
深蓝海拓17 分钟前
PySide6从0开始学习的笔记(二) 控件(Widget)之容器类控件
笔记·qt·学习·pyqt
_李小白19 分钟前
【Android GLSurfaceView源码学习】第二天:GLSurfaceView深度分析
android·学习
zhougl99626 分钟前
区分__proto__和prototype
开发语言·javascript·原型模式
秋深枫叶红32 分钟前
嵌入式第三十七篇——linux系统编程——线程控制
linux·学习·线程·系统编程
猫天意33 分钟前
【即插即用模块】AAAI2025 | 高频 + 空间感知!新 HS-FPN 让“极小目标”不再消失!SCI保二区争一区!彻底疯狂!!!
网络·人工智能·深度学习·学习·音视频
weixin_4209476436 分钟前
php composer update 指定包的分支非tag
开发语言·php·composer
Voyager_437 分钟前
算法学习记录17——力扣“股票系列题型”
学习·算法·leetcode