C语言基础:C语言static和extern(2) - 作用与变量

上一节, 我们讲解了staticextern对于函数的作用, 这次我们来讲解staticextern对于变量的作用.


首先, 我们来看一个例子:



输出的结果:




有人会疑问, 为什么我在main.c文件里面定义的全局变量会和在one.c文件里面的全局变量的输出结果和地址是完全一样的呢?



其实原因很简单, 一般来将, 只要我们没有特定写明全局变量是内部的, 那么默认就会把这个全局变量当成是外部变量, 而两个外部变量都是可以重复定义的, 编译器不会报错, 所以它们输出的结果和地址是完全一样的, 那如果我要他们不一样呢? 我们继续往下看:



输出的结果:



只要在全局变量之前加上static这个关键字, 那么这个全局变量就只能在本文件里面使用, 别的文件里面是不能调用, 所以它们的地址是不相同的.




还有一个关键字extern, 其实在前面我们讲过, 我们可以忽略这个extern不写, 如果写上的话, 就是完整的定义一个外部变量, 不写也不会影响什么:



输出的结果:



刚开始接触的时候或许会有一些迷惑, 但大家回去多敲敲代码, 多实验, 那就明白是什么意思了~~~





好了, 这次我们就讲到这里, 下次我们继续~~~

posted @ 2015-01-11 18:07  背着吉他去流浪  阅读(157)  评论(0编辑  收藏  举报