作用域
C语言中变量的作用域分为:代码块作用域,函数原型作用域和文件作用域。
1.1 代码块作用域
代码块是包含在开始花括号和对应的结束花括号之内的一段变量。在代码块中定义的变量具有代码块作用域。
1.2 函数原型作用域适用于函数原型中使用的变量名( 不重要 )
1.3 文件作用域:一个在所有函数之外定义的 变量具有文件作用域。具有文件作用域的变量从它定义初到包含该定义的文件结尾处都是可见的。连接
连接类型分为外部链接,内部链接和空链接。
具有代码块作用域或者函数原型作用域的变量有空链接,意味着他们是由其定义所在的代码块或者函数原型所私有的。
具有文件作用域的变量可能有内部链接或者外部链接。
int giant = 5; //文件作用域,外部链接
static int dodgers = 3; //文件作用域,内部链接
int main()
{
...
}
...
- 存储时期
存储时期分为:静态存储时期和自动存储时期。
3.1 静态存储时期:在程序执行期间一直存在。具有文件作用域的变量具有静态存储时期。注意对于具有文件作用域的变量,关键词static表明连接类型,并非存储时期,使用static声明了的文件作用域变量具有内部链接,而所有的文件作用域变量,不论它具有内部链接,还是具有外部链接,都具有静态存储时期。
3.2 自动存储时期:变量作用域结束时,释放变量存储空间
C语言变量的5种分类