用户登录
用户注册

分享至

C++中auto、static、register和extern等变量讲解

  • 作者: 嘻嘻哈哈嘿嘿呵呵吼吼
  • 来源: 51数据库
  • 2021-08-29
auto变量

表明变量自动具有本地范围,在离开作用域时,无论是块作用域还是文件作用域亦或是函数作用域,变量都会被程序隐藏或者自动释放。然后等你重新进入该作用域,变量又被重新定义或调用。使用auto变量的优势是无需考虑变量是否被释放。

static变量

变量定义的位置决定它的作用域。无论定义在函数内还是函数外,它的生存期是永久的,直到程序结束,才会释放,无需手动释放。若在函数内定义,在函数调用结束后,该变量也不会被释放,保持最后的变量值。

register寄存器型变量

这个关键字要求编译器尽可能的将变量存储在cpu内部寄存器中,而不是通过内存寻址访问,以提高效率。但是这只是给系统的一个暗示,如果寄存器资源有限,系统也不会满足你的要求。register型变量存取速度比内存快多了,一般在一些系统库文件或接口库中使用的多,正常能用上较少。

extern外部变量

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

软件
前端设计
程序设计
Java相关