Static和Extern变量及函数

Posted ZSoYoung

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Static和Extern变量及函数相关的知识,希望对你有一定的参考价值。

extern 

声明全局变量,我们也可以将全局变量a声明为局部变量后再使用!!!
你在一个源文件中无论写多少遍全局变量int a;,它们代表的都是同一个变量。还有一个事实,假如在另一个源文件中也有全局变量int a;,那么这两个源文件的所有全局变量int a;都代表着同一个变量。
注意了,不可以两个文件的所有全部变量a都用extern
extern是用来声明已经定义过而且能够访问的变量
static

很多时候,我们并不想让源文件中的全局变量跟其他源文件共享,相当于私有的全局变量,那么你就得用static关键字来定义变量。
Static和Extern的总结

1.extern可以用来声明一个全局变量,但是不能用来定义变量

2.默认情况下,一个全局变量是可以供多个源文件共享的,也就说,多个源文件中同名的全局变量都代表着同一个变量

 
3.如果在定义全局变量的时候加上static关键字,此时static的作用在于限制该全局变量的作用域,只能在定义该全局变量的文件中才能使用,跟其他源文件中的同名变量互不干扰

  • 外部函数:如果在当前文件中定义的函数允许其他文件访问、调用,就称为外部函数。C语言规定,不允许有同名的外部函数。
  • 内部函数:如果在当前文件中定义的函数不允许其他文件访问、调用,只能在内部使用,就称为内部函数。C语言规定不同的源文件可以有同名的内部函数,并且互不干扰。

以上是关于Static和Extern变量及函数的主要内容,如果未能解决你的问题,请参考以下文章

16-static和extern关键字2-对变量的作用

话说extern和static

通过项目实践带你彻底搞懂C/C++编程中static与extern两关键字的使用

C语言static 和extern

[C]控制外部变量访问权限的extern和static关键字

static extern volatile