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

运行结果

相关推荐
留白_18 小时前
MySQL学习(7)——存储过程
学习
啵啵鱼爱吃小猫咪18 小时前
机械臂阻抗控制github项目-mujoco仿真
开发语言·人工智能·python·机器人
似水明俊德18 小时前
02-C#
开发语言·c#
oem11018 小时前
C++中的享元模式实战
开发语言·c++·算法
似水明俊德18 小时前
01-C#.Net-泛型-面试题
java·开发语言·面试·c#·.net
小酒丸子18 小时前
AD学习笔记之异形焊盘
笔记·学习
leonkay18 小时前
Golang语言闭包完全指南
开发语言·数据结构·后端·算法·架构·golang
Allnadyy19 小时前
【C++项目】从零实现高并发内存池(一):核心原理与设计思路
java·开发语言·jvm
雅欣鱼子酱19 小时前
Type-C供电PD协议取电Sink芯片ECP5702,可二端头分开供电调整亮度,适用于LED灯带户外防水超亮灯条方案
c语言·开发语言
renhongxia119 小时前
如何对海洋系统进行知识图谱构建?
人工智能·学习·语言模型·自然语言处理·自动化·知识图谱