关键字auto 含义 -- C

auto int a=32;

中的auto在编程中很少见,其几天笔试考到,由于不记得以前用过,就以无视auto的存在进行了处理。

作用:

C语言是面向过程的,会有很多分模块的函数,每个函数都会有其生存周期(也叫作用域),在函数生命周期中声明的变量通常叫做局部变量,也叫自动变量,也就是说,如果在

形如:

int fun(){

 int a=10;

 return a;

}

编译器会自动在 int a=10;的语句前面加上auto的关键字,所以,无视它的存在一般情况下是没有问题的。


此外,附带介绍一下看到的另外一个关键字:register,如果一个变量用register来修饰,该变量会作为一个寄存器变量,以使其访问速度达到最快。比如:一个程序逻辑中有一个很大的循环,循环中有几个变量要频繁的进行操作,这些变量可以声明为register类型。

寄存器变量:

寄存器变量是指一个变量直接引用寄存器,也就是对变量名的操作的结果是直接对寄存器进行访问。寄存器是CPU的亲信,CPU操作的每个操作数和操作结果,都由寄存器来暂时保存,最后才写入到内存或从内存中读出。也就是说,变量的值通常保存在内存中,CPU对变量进行读取先是将变量的值从内存中读取到寄存器中,然后进行运算,运算完将结果写回到内存中。为什么要这么设计,而不直接对变量的值从内存中进行运算,而要再借助于寄存器?这是由于考虑到性能的问题才这么设计的。

 

 


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值