register关键字 请求编译器让变量a直接放在寄存器里面,速度快

在c语言中 register修饰的变量 不能取地址,但是在c++里面做了内容



1

register关键字的变化

register关键字请求“编译器”将局部变量存储于寄存器中

C语言中无法取得register变量地址

在C++中依然支持register关键字

C++编译器有自己的优化方式,不使用register也可能做优化

C++中可以取得register变量的地址



2

C++编译器发现程序中需要取register变量的地址时,register对变量的声明变得无效。



3

早期C语言编译器不会对代码进行优化,因此register变量是一个很好的补充。

demo

#include <iostream>

int main()
{
	register int a = 0;

	printf("&a = %x\n", &a); // c语言这里会报错

	for (int i = 1; i < 1000; i++) { // 而对于这种频繁使用i的情况自动进行优化,将i放入寄存器中
		printf("%d\n", i);
	}

	system("pause");
	return 0;
}

最新文章

  1. JQUERY 实现加入收藏夹功能
  2. Hibernate框架之入门
  3. #import vs. @class
  4. text-overflow 与 word-wrap:设置使用一个省略标记...标示对象内文本的溢出。
  5. Asp.Net转换Html加号显示为空格的字符!(自已备用)
  6. JAVA开发环境 - 环境变量及配置
  7. SQL Server 触发器(转)
  8. Tyvj-超级书架
  9. boost库之geometry&lt;二&gt;
  10. 发布自己的Angular2库初探
  11. RecyclerView 设置item间隔的方法
  12. 【转载】通俗易懂,什么是.NET?什么是.NET Framework?什么是.NET Core?
  13. git相关的操作
  14. URL简介
  15. 常用lua代码块
  16. 12.16daily_scrum
  17. linux 关机、重启
  18. spring cloud Eureka server配置
  19. mysql group_concat方法用法
  20. JS学习笔记(3)--json格式数据的添加,删除及排序方法

热门文章

  1. bzoj3173[Tjoi2013]最长上升子序列 平衡树+lis
  2. WebDNN:Web浏览器上最快的DNN执行框架
  3. swift之属性
  4. 利用Runtime实现简单的字典转模型
  5. Linux(Ubuntu)安装libpcap
  6. java中JSON转换
  7. JavaScript数据结构和算法----栈
  8. 31. Next Permutation(中等,搞清楚啥是 next permutation)
  9. linkList hashSet ArrayList IO 序列化 1.1.瞬态transient .字符编码表 Properties
  10. dict的操作和三级菜单