《c语言深度解剖》 1.1 1.2 关键字auto register

**c语言的代码是文本写的,当我们点击编译运行的时候本质上在做什么呢 **
**其实是将文本类的代码生成一个二进制可执行程序 **
在编译的时候实际是想将文本代码转可执行程序

可执行程序其实就是一个二进制文件,本质上也是个文件 .exe
1. 在win中 双击的本质运行程序,将程序加载到内存中
2. 任何程序在被运行之前都必须加载到内存中
为什么?
因为快

当我没被加载到内存的时候在硬盘中(外设)
在这里插入图片描述
在这里插入图片描述
所有的变量本质都是在内存的某个位置开辟空间
因为变量定义前已经在内存中了在这里插入图片描述

为什么要定义变量

在这里插入图片描述
总结:因为有些数据不是要立马处理,要过一段时间使用

变量定义的本质

定义:开辟空间的(定义只能一次 )
声明:告知(声明可以多次)

在这里插入图片描述

变量声明的本质

在这里插入图片描述

a uto最宽宏大量的关键字

局部变量是auto 全局变量不是
在这里插入图片描述
**局部变量只在代码块中有效 **

变量的生命周期

时间概念 什么时候被开辟 什么时候被释放

作用域 (影响范围)

局部变量优于全局变量


在这里插入图片描述


在这里插入图片描述
auto只能用来修饰局部不能全局,在局部变量里可以省略不写

最快关键字 register(寄存器)

存储分歧
在这里插入图片描述

在这里插入图片描述

局部的,(全局变量可能会导致cpu寄存器长期被占用)需要被高频读取的变量建议定义register。效率高在这里插入图片描述


在这里插入图片描述
**举例 放到寄存器里就不需要在内存中开辟,他就没有地址,没有地址就不能取地址 **
**寄存器可以被写入 **

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值