c语言外部变量extern是不是等于全局变量

主函数main()里有两个函数f1()和f2()如果在这三个函数中的某一个函数里定义extern int a;那是不是这三个函数都可以读写a这个变量
换句话说是不是在程序源代码中的某一行下定义extern int a;是不是在整个程序中都可以读写这个变量(extern ing a;这是全局变量吗)

外部变量是在函数的外部定义的全局变量,他的作用域是从变量的定义出开始,到本程序末尾的结束。有时需要用extern来声明外部变量,以扩展外部变量的作用域。在程序源代码中的某一行定义的只能是这一行下面的可以读写这个变量知道
void main()
{extern a,b;//外部变量声明
...........
}
int a=12,b=23;//定义外部变量
int max(int x,int y)
{...........
}
定义外部变量a,b在函数main之后,因此在main函数中不能使用
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-12-01
外部变量和全局变量还是不同的,第一,它的定义位置不同:全局变量是定义在当前文件中,外部变量定义在其它的文件中;第二,用法不同:外部变量的使用一般是在多文件的结构中,在一个项目中,我们可以有很多的功能模块的文件,在主函数里把其它的功能模块函数直接调用过来,在其它的文件中就要声明功能函数为外部函数,用到的变量声明为外部变量
第2个回答  2010-12-01
extern可以置于变量或者函数前,以表示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。本回答被网友采纳
第3个回答  2010-12-01
举个例子:
#include<stdio.h>
int a; //全局变量系统默认为 a = 0;
int main()
{
f1()
{
//可以使用a
}
f2()
{
//也可以使用a
}
}
但是在使用全局变量时,注意,a的值会在f1()函数使用后发生改变。