目录
题目
问题分析
代码
运行结果
题目
题目:学习使用extern的用法。
问题分析
extern int i; //定义全局变量 i
上述代码语句,extern告诉编译器,变量i是在程序中的其他位置定义的(很有可能是在不同的源文件中),因此不需要为i分配空间。extern可以用于所有类型的变量。在数组的声明中使用extern的时候,可以省略数组的长度。例如:extern int a[] ;因此编译器不用为数组a分配空间,所以也就不需要知道数组a的长度了。
为了在几个源文件中共享变量i,首先把变量i的定义放置在一个文件中:int i; 如果需要对变量i初始化,可以把初始化式放在这里。在编译这个文件时,编译器会为变量i分配内存空间,而其他文件将包含变量i的声明: extern int i;通过在每个文件中声明变量i,使得在这些文件中可以访问或修改变量i。由于关键字extern的存在,编译器不会在每次编译这些文件时为变量i分配额外的空间。
声明:用来告诉编译器变量的名称和类型,而不分配内存,不赋初值。
定义:为了给变量分配内存,可以为变量赋初值。
声明可以多次,定义只能一次!声明可以多次,定义只能一次!
代码
#include "stdio.h"
int a, b, c;
void add()
{
int a;
a = 3;
c = a + b;
}
void main()
{
a = b = 4;
add();
printf("The value of c is equal to %d\n", c);
}
运行结果