变量是什么? auto register关键字

打印 上一主题 下一主题

主题 649|帖子 649|积分 1947

目次

变量

步伐的本质:二进制文件

运行步伐,即将步伐中的数据加载到内存中运行
为什么要加载到内存? 1.冯诺依曼体系决定 2.快
1.变量:内存上的某个位置开发的空间

因为变量都是步伐运行起来才开发的
2.变量的初始化:

变量的空间被开发后,就应当具有对应的数据,即必须要初始化.表示该变量与生俱来的属性就是该初始值
3.为什么要有变量

盘算机是为了解决人盘算能力不足的问题而诞生的.即,盘算机是为了盘算的.
而盘算,就必要数据
而要盘算,任何时刻,不是所有的数据都要立马被盘算,因此有的数据必要临时被保存起来,等待后续处理. 所以必要变量
4.局部变量与全局变量


  • 局部变量:包含在代码块中的变量叫做局部变量.局部变量具有临时性.进入代码块,主动形成局部变量,退出代码块主动释放. 局部变量在栈区保存
  • 全局变量:在所有函数外定义的变量,叫做全局变量.全局变量具有全局性.全局变量在全局已初始化数据区保存.
  • 代码块:用花括号{}括起来的区域,就叫做代码块.
5.变量的大小由类型决定

6.任何一个变量,内存赋值都是从低地址开始往高地址

所以首地址和取地址永远都是低地址
1.1 关键字auto

默认情况下,编译器默认所有的局部变量都是auto的,auto一般只能用来修饰局部变量,不能修饰全局变量.ju'bu也叫主动变量.一般情况下都是省略auto关键字的.基本永不使用
1.2 关键字register

发起性关键字,发起编译器将该变量优化到寄存器上,详细情况由编译器决定
(不发起大量使用,因为寄存器数量有限)
什么样的变量可以采用register?


  • 局部的(全局会导致CPU寄存器被长时间占用)
  • 高频被读取的(进步访问效率)
  • 不会被写入的(写入就必要写回内存,后续还必要读取检测的话,register就没有意义了)
寄存器变量是不能被取地址的,因为不在内存中,就没有内存地址
register不会影响变量的生命周期,只有static会影响变量的生命周期

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

石小疯

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表