C变量作用域
Posted WSen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C变量作用域相关的知识,希望对你有一定的参考价值。
参考链接:http://www.runoob.com/cprogramming/c-functions.html
又是这个网站的链接,介绍的很清晰,界面也漂亮!推荐看!
tips :1 没有关键字,就看变量在哪一层{}内定义,那他的作用就在那个{}里,如果在外面就是全局变量了!
2 有关键字修饰: static 意思是 静态变量,静态变量虽在程序的整个执 行过程中始终存在,但是在它作用域之外不能使用。
1).静态变量,分配在静态存储区,在数据段中。函数退出之后,变量值不变。
2).作用域,全局的静态变量、静态函数只能在本文件中使用。(不同于一般全局变量)
3) 局部的静态变量同函数的局部变量
static详细介绍:http://www.cnblogs.com/dongzhiquan/archive/2009/07/21/1994792.html
extern 修饰意思是 这个变量在别的文件中定义
extern详细介绍:http://www.cnblogs.com/yc_sunniwell/archive/2010/07/14/1777431.html
extern和static不能同时修饰一个变量;其次,static修饰的全局变量声明与定义同时进行,也就是说当你在头文件中使用static声明了全局变量后,它也同时被定义了;最后,static修饰全局变量的作用域只能是本身的编译单元,也就是说它的“全局”只对本编译单元有效,其他编译单元则看不到它。
关于作用域的问题则必须要联系C语言的内存模型,这样理解会更深刻!
以上是关于C变量作用域的主要内容,如果未能解决你的问题,请参考以下文章