1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 搞懂全局变量 外部变量 静态全局变量的区别

搞懂全局变量 外部变量 静态全局变量的区别

时间:2021-02-10 17:07:12

相关推荐

搞懂全局变量 外部变量 静态全局变量的区别

搞懂全局变量、外部变量、静态全局变量的区别

全局变量外部变量静态全局变量

全局变量

全局变量是在函数的外部定义的,它的作用域为从变量定义处开始,到本程序文件的末尾。

如果外部变量不在文件的开头定义,其有效的作用范围只限于定义处到文件终了。如果同一个源文件中,全局变量与局部变量同名,则在局部变量的作用范围内,全局变量被“屏蔽”,即它不起作用。如果写在文件的开头,可以省略extern。在静态存储区分配存储空间

#include<stdio.h>#include <process.h>int a=5;//全局变量a,写在文件的开头,省略externvoid Print_a( ){int a=10;//全局变量被屏蔽printf("%d\n",a);}int main(void){printf("%d\n",a);Print_a( );system("pause");return 0;}

结果:

5

10

全局变量在整个程序中起作用,如果程序包含多个程序文件模块,可以通过外部声明,使得全局变量的作用范围扩展到其他模块,也可以通过定义静态全局变量,使其作用范围仅限制在这个模块

外部变量

全局变量只能被定义一次,如果其他模块要使用该全局变量,需要通过外部变量的声明。

外部变量声明格式: extern 变量名表;

只起说明作用,不分配存储单元,对应存储单元在全局变量定义时分配。

main.c

#include <stdio.h>int count ;extern void write_extern();int main(){count = 5;write_extern();}

support.c

#include <stdio.h>extern int count;void write_extern(void){printf("count is %d\n", count);}

静态全局变量

当程序只有一个文件模块,其与一般全局变量作用相同; 当程序有多个模块时,C语言静态全局变量的作用范围局限于该模块。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。