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语言的内存模型,这样理解会更深刻!

  

本文由个人收集网络资料整理而成,部分资料来源不明确,如有侵权请联系作者。另欢迎大家交流分享,转载请注明出处。谢谢!
原文地址:https://www.cnblogs.com/wangsens/p/7612669.html