C语言基础:C语言static和extern(2) - 作用与变量
上一节, 我们讲解了static和extern对于函数的作用, 这次我们来讲解static和extern对于变量的作用.
首先, 我们来看一个例子:
输出的结果:
有人会疑问, 为什么我在main.c文件里面定义的全局变量会和在one.c文件里面的全局变量的输出结果和地址是完全一样的呢?
其实原因很简单, 一般来将, 只要我们没有特定写明全局变量是内部的, 那么默认就会把这个全局变量当成是外部变量, 而两个外部变量都是可以重复定义的, 编译器不会报错, 所以它们输出的结果和地址是完全一样的, 那如果我要他们不一样呢? 我们继续往下看:
输出的结果:
只要在全局变量之前加上static这个关键字, 那么这个全局变量就只能在本文件里面使用, 别的文件里面是不能调用, 所以它们的地址是不相同的.
还有一个关键字extern, 其实在前面我们讲过, 我们可以忽略这个extern不写, 如果写上的话, 就是完整的定义一个外部变量, 不写也不会影响什么:
输出的结果:
刚开始接触的时候或许会有一些迷惑, 但大家回去多敲敲代码, 多实验, 那就明白是什么意思了~~~
好了, 这次我们就讲到这里, 下次我们继续~~~