前言:笔者最近在看C语言时候遇到了一堆关键字,auto,static,extern,register等等。看上去头皮发麻,在这里整理一下,便于自己理解。
全局变量和局部变量
关于全局变量和局部变量,笔者看过网上和书上各种解释,也是一头雾水,不能完全理解。在本篇中,笔者给出自己理解的全局变量和局部变量的定义如下:
- 全局变量:定义在模块外的变量。(这里的模块指被一对{}包围的内容)
- 局部变量:定义在模块内的变量。
变量的作用域和生存期
对于一个变量,从时空角度上来说,它有两个重要的属性:作用域和生成期。
- 作用域:在这个范围内,变量可以被读写;在这个范围之外,变量不能被访问。
- 生存期:在这个周期内,变量能够存在于它被分配的存储区内;超过这个周期,变量被销毁,即它原来所占用的存储期可能另作他用。
变量和存储类型关键字
对于全局变量和局部变量,变量的作用域和生存期,笔者以前总是笼统的以为,全局变量的生存期就是整个程序运行期间,局部变量的生存期是模块程序运行期间。但其实不能以偏概全,要结合存储类型关键字一起来看。
===================&