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

运行结果

相关推荐
Joy T1 小时前
Agent 确定性上下文设计:从 Prompt 参数注入到能力分层
java·开发语言·微服务·架构·prompt·agent context
专注仿真4 小时前
引擎扩展性与集成设计深度剖析:从 14 个扩展点到 DIS→HLA 演进之路
开发语言·算法·仿真引擎·推演引擎
Best-Wishes4 小时前
科来网络分析系统(技术交流版)使用说明书
开发语言·junit·php
代码不停5 小时前
自动化测试(java)
java·开发语言·selenium·自动化
滕州市燕猫虎计算机科技工作室个体工商户5 小时前
《Rust程序设计》学习笔记八:结构体
笔记·学习·rust·rust程序设计
别动我齐刘海6 小时前
Linux 系统调试学习1
linux·运维·服务器·c++·学习·机器学习·机器人
鬼手点金7 小时前
opencode-rules 插件
java·开发语言·前端·人工智能·chrome·git·github
爱上网的小舟7 小时前
星际战士2启动错误怎么办?5种游戏报错解决方法
开发语言·php
xier_ran8 小时前
【infra之路】AI 编译器学习笔记(二):重拾 C++——移动语义与 LLVM 风格的类型转换
人工智能·笔记·学习
阿里嘎多学长8 小时前
2026-10-12 GitHub 热点项目精选
开发语言·程序员·github·代码托管