C++中auto、static、register和extern

  • auto变量
    表明变量自动具有本地范围,在离开作用域时,无论是块作用域还是文件作用域亦或是函数作用域,

变量都会被程序隐藏或者自动释放。然后等你重新进入该作用域,变量又被重新定义或调用。使用auto

变量的优势是无需考虑变量是否被释放。

  • static变量
    变量定义的位置决定它的作用域。无论定义在函数内还是函数外,它的生存期是永久的,直到程序

结束,系统才会释放,无需手动释放。若在函数内定义,在函数调用结束后,该变量也不会被释放,保

持最后的变量值。

  • register寄存器型变量
    这个关键字要求编译器尽可能的将变量存储在CPU内部寄存器中,而不是通过内存寻址访问,以提

高效率。但是这只是给系统的一个暗示,如果寄存器资源有限,系统也不会满足你的要求。register型

变量存取速度比内存快多了,一般在一些系统库文件或接口库中使用的多,正常能用上较少。

  • extern外部变量
    它属于声明变量,extern int  s和int s的区别就是,前者告诉编译器,有一个Int型变量s定义在其他
    地方,如果有调用请去其他文件中查找定义;后者是在此处定义一个int型变量s。





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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值