extern是外部声明用的,用来声明外部的函数或者变量定义。
例如,你在1.C中定义了一个函数和变量:
void fun1(void);
int a = 0;
而你要在2.c中调用 fun1(),并且读取a的值,
那么需要再2.c的头部如下外部声明:
extern void fun1(void);
extern int a = 0;
这样的话在编译器在编译2.c时,不会报错误,而在链接时找fun1、a,以实现对外部函数、变量的访问。
一般是在一个文件A中对于其他文件中的全局变量或者全局函数需要调用时,先在文件的开头extern一下,相当于在A文件中声明了其他文件中的变量和函数,使得这个变量和函数在这个文件中就可以使用了。
例如在文件a.c中有个变量x,一个函数b();
你在文件b.c中想要使用这个变量x和函数b(),只需要在b.c文件的开头extern一下这个变量就可以了。