C++中auto、static、register和extern等变量讲解
程序员文章站
2022-03-23 19:29:36
auto变量
表明变量自动具有本地范围,在离开作用域时,无论是块作用域还是文件作用域亦或是函数作用域,变量都会被程序隐藏或者自动释放。然后等你重新进入该作用域,变量又被重新定义或调用。使用auto变...
auto变量
表明变量自动具有本地范围,在离开作用域时,无论是块作用域还是文件作用域亦或是函数作用域,变量都会被程序隐藏或者自动释放。然后等你重新进入该作用域,变量又被重新定义或调用。使用auto变量的优势是无需考虑变量是否被释放。
static变量
变量定义的位置决定它的作用域。无论定义在函数内还是函数外,它的生存期是永久的,直到程序结束,才会释放,无需手动释放。若在函数内定义,在函数调用结束后,该变量也不会被释放,保持最后的变量值。
register寄存器型变量
这个关键字要求编译器尽可能的将变量存储在cpu内部寄存器中,而不是通过内存寻址访问,以提高效率。但是这只是给系统的一个暗示,如果寄存器资源有限,系统也不会满足你的要求。register型变量存取速度比内存快多了,一般在一些系统库文件或接口库中使用的多,正常能用上较少。
extern外部变量
它属于声明变量,extern int? s和int s的区别就是,前者告诉编译器,有一个int型变量s定义在其他地方,如果有调用请去其他文件中查找定义;后者是在此处定义一个int型变量s。
上一篇: 车联网,电台应用最后的救命稻草
下一篇: SQL注入之木马上传