register关键字
文章目录
- 1 register关键字
- 2 C++中的register关键字
1 register关键字
对于register关键字:
- register关键字只能作用于局部变量,不能作用于全局变量。
- register关键字指明将局部变量存储于寄存器中。
- register只是请求寄存器变量,但不一定请求成功。
- register变量的必须是CPU寄存器可以接受的值。
- 不能用&运算符获取register变量的地址。
2 C++中的register关键字
register关键字请求编译器将局部变量存储于寄存器中,在C++中依然支持register关键字(存在的目的就是为了兼容C语言)。
C++编译器有自己的优化方式:
- C语言中无法获取register变量的地址。
- C++中可以取得register变量的地址。
C++中的register关键字:
- C++编译器发现程序中需要register变量的地址时,register对变量的声明变得无效(早期的做法,register对于现在的编译器来说形同虚设)。
- 早期的C语言编译器不会对代码进行优化,因此register变量是一个很好的补充。
注意:在任何情况下,都不可能取得一个寄存器的地址,因为地址都是针对内存来说的,不是针对寄存器来说的。
参考资料:
- C语言进阶剖析教程
- C++深度解析教程
register关键字相关推荐
- C++对C的加强之register关键字增强
register关键字增强 前言 register关键字的变化 前言 //register关键字 请求编译器让变量a直接放在寄存器里面,速度快 //在c语言中 register修饰的变量 不能取地址, ...
- C语言register关键字——最快的关键字
C语言register关键字-最快的关键字 (2012-08-24 14:09:24) 转载▼ 标签: 杂谈 分类: C/C register:这个关键字请求编译器尽可能的将变量存在CPU内部寄 ...
- register关键字的使用
前言 本文用简单代码实验介绍register关键字的使用. 上代码 #include <stdio.h>int main(void) {int i;int tmp = 0;for (i=1 ...
- C语言register关键字—最快的关键字
register:这个关键字请求编译器尽可能的将变量存在CPU内部寄存器中,而不是通过内存寻址访问,以提高效率.注意是尽可能,不是绝对.你想想,一个CPU 的寄存器也就那么几个或几十个,你要是定义了很 ...
- 【C++】register 关键字
文章目录 一. 什么是寄存器? 二. 为什么要存在寄存器? 三. register 修饰变量 一. 什么是寄存器? 我们都知道,CPU主要是负责进行计算的硬件单,但是为了方便运算,一般第一步需要先把数 ...
- C和指针之auto和内存栈和register关键字
1.auto 在C代码中每个函数都有其生命周期(也称作用域),在函数生命周期中声明的变量通常叫做局部变量,也叫自动变量.例如: 复制代码代码如下: int chenyu(){ int a = 10; ...
- register关键字-1
#include<iostream>using namespace std;int main(int argc, char*argv[]) /* Rong Tao 2018.03.19 * ...
- C++ register 关键字
register 简介: register 就像是汉语和英语中的形容词(不要问为什么只有两种语言,因为小编只会这两种),在 C++ 中 register 是用来修饰变量的. register 的作用: ...
- 详细说明register关键字
一 register的作用(加上volatile都是让其变成易变的,防止编译器对其进行优化) 一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了. ...
最新文章
- Hive环境的安装部署(完美安装)(集群内或集群外都适用)(含卸载自带mysql安装指定版本)...
- 在jMeter里如何创建用户定义的能生成随机数的变量
- bat java 指定堆大小_jvm 堆内存 栈内存 大小设置 查看堆大小
- 68.iOS设备尺寸及型号代码(iPhoneXR/XS)
- 回顾 | 在 GitHub 上贡献到开源项目
- 3dsmax怎么添加uv坐标_YND科研绘图3Dsmax基础操作
- 10分钟教你用VS2017将代码上传到GitHub
- FreeBSD内核简介
- 选择排序:简单选择排序
- cordova 安装ssl证书_超详细cordova环境配置(windows)及实例
- Unity中 创建射线的两种方法
- Fish 环境下如何安装 nvm
- armv6, armv7, armv7s, arm64 的区别
- 梦幻群侠传5帮派修炼_梦幻群侠传5手游下载
- linux内核源码 进程,详解:Linux内核源代码
- abb机器人指令手册_ABB机器人加速度设置
- 电驴搜索服务器正在连接,电驴连接不上服务器导致无法搜索解决的方法介绍
- 从客户需求开始你的供应链管理战略
- android实现手机号验证码注册
- 手机英文上面的逗号怎么打_英文中关于逗号使用方法