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);
}

运行结果

相关推荐
小成2023032026513 小时前
Linux高级02
linux·开发语言
钢琴上的汽车软件13 小时前
C 语言中const与指针:三种常见写法辨析
c语言·指针和const
知行合一。。。13 小时前
Python--04--数据容器(总结)
开发语言·python
咸鱼2.014 小时前
【java入门到放弃】需要背诵
java·开发语言
ZK_H14 小时前
嵌入式c语言——关键字其6
c语言·开发语言·计算机网络·面试·职场和发展
A.A呐14 小时前
【C++第二十九章】IO流
开发语言·c++
椰猫子14 小时前
Java:异常(exception)
java·开发语言
lifewange14 小时前
pytest-类中测试方法、多文件批量执行
开发语言·python·pytest
ambition2024214 小时前
从暴力搜索到理论最优:一道任务调度问题的完整算法演进历程
c语言·数据结构·c++·算法·贪心算法·深度优先
cmpxr_14 小时前
【C】原码和补码以及环形坐标取模算法
c语言·开发语言·算法