尝试下面的实例,其中,变量在头部就已经被声明,但是定义与初始化在主函数内:
实例
include
// 函数外定义变量 x 和 y
int x;
int y;
int addtwonum()
{
// 函数内声明变量 x 和 y 为外部变量
extern int x;
extern int y;
// 给外部变量(全局变量)x 和 y 赋值
x = 1;
y = 2;
return x+y;
}
int main()
{
int result;
// 调用函数 addtwonum
result = addtwonum();
printf("result 为: %d",result);
return 0;
}
当上面的代码被编译和执行时,它会产生下列结果:
result 为: 3
如果需要在一个源文件中引用另外一个源文件中定义的变量,我们只需在引用的文件中将变量加上 extern 关键字的声明即可。
addtwonum.c 文件代码:
include
/外部变量声明/
extern int x ;
extern int y ;
int addtwonum()
{
return x+y;
}
test.c 文件代码:
include
/定义两个全局变量/
int x=1;
int y=2;
int addtwonum();
int main(void)
{
int result;
result = addtwonum();
printf("result 为: %d\n",result);
return 0;
}
当上面的代码被编译和执行时,它会产生下列结果:
$ gcc addtwonum.c test.c -o main
$ ./main
result 为: 3