外部变量 是在 函数 外部定义的全局变量,它的 作用域 是从变量的定义处开始,到本 程序文件 的结尾。在此 作用域 内,全局变量可为各个 函数 所引用。编译时将 外部变量 分配在静态存储区。
创新互联建站服务项目包括阳原网站建设、阳原网站制作、阳原网页制作以及阳原网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,阳原网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到阳原省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
有时要用extern来声明 外部变量 ,以扩展外部变量的 作用域 。 也可用static声明外部变量,使该变量不能被其他文件引用。
用extern声明外部变量
extern可省略不写。
本文件里:在一个文件里,有不止一个 函数 ,外部变量在第一个函数后面定义。若用extern在第一个函数前声明该变量则该变量可以在第一个函数中使用。
多个文件中:在其他文件中若想要用该文件中已声明的变量,则在文件头部声明该变量,即可在文件中使用。
用static声明外部变量
static声明后该外部变量就只能在本文件中使用。
所谓外部变量和函数,就是没有写在同一.c文件中的函数和变量,与同文件中的引用只是多在前面写个extern描述后完全相同。
main()中的extem a;改为extem int a; extem用于将用于将其他源文件的函数或变量的作用范围扩大到整个程序。在定义是不需要,只有在应用前用申明语句申明即可,如extern void print(int n);
你也没说哪不懂,只能回答这么多了,希望对你有帮助
一般不把这两句放在同一个源文件里。
第一个是一个变量的定义,第二个是变量的声明。
在文件a.c中定义一个USER login_user;但是在文件b.c中要用到这个全局变量,就采用声明的方法,extern USER login_user;来告诉编译器,我需要用一个变量login_user;但是这个变量已经在别的文件中定义了——就这个意思。
声明和变量定义的关系
一般在函数调用里面
int func1(int a,int b)
{......}
int func2(......)
{
......
int x=1;
int y=2
func(x,y);
......
}
上面的x和y就是定义。而a和b就是声明。
在函数外部声明的为全局变量.
带static的是静态全局变量, 作用域为当前文件.
不带static的是全局变量, 作用域为整个程序.
所有全局变量的生命周期都是整个程序运行
当一个源程序由多个源文件组成时,C语言根据函数能否被其它源文件中的函数调用,将函数分为内部函数和外部函数。
如果在一个源文件中定义的函数,只能被本文件中的函数调用,而不能被同一程序其它文件中的函数调用,这种函数称为内部函数。
定义一个内部函数,只需在函数类型前再加一个“static”关键字即可,如下所示:
static 函数类型 函数名(函数参数表){……}
在定义函数时,如果没有加关键字“static”,或冠以关键字“extern”,表示此函数是外部函数:
[extern] 函数类型 函数名(函数参数表){……}
外部函数原型声明要有extern
简单说,外部函数是用户自定义函数,该函数写在另一个文件里.