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变量作用域的主要内容,如果未能解决你的问题,请参考以下文章

C变量作用域,生存期,链接特性

C语言“局部变量作用域”的问题

关于C语言作用域

C:作用域

C/C++中作用域详解(转)

C里面静态动态,生命周期.作用域怎么区分?怎么用