关键字extern的作用是在一个文件中引用一个变量或者一个函数
引用同一个文件中的变量
在编写代码的时候会出现一个变量在使用的时候,发现这个变量声明的位置在使用位置的后边,但是这个时候不想把声明位置给提前,导致程序出现变量未定义的错误,这个时候可以通过extern在使用之前对其进行声明,既可以使用该变量。
例子:
#include<stdio.h>
void func();
int main() {
func(); //此时调用func函数在num声明之后
extern int num;
printf("%d", num);// 虽然调用num在声明之前,但是通过ectern对其进行修饰可以使用
return 0;
}
int num = 1;
void func() {
printf("%d\n", num++);
}
引用另个一个文件中的全局变量
如果在同一个工程下的其他文件有一个非static修饰的全局变量要在当前问下使用,可以使用extern对其修饰。如下所示:
// main.c
#include<stdio.h>
int main(){
extern int num;
printf("%d",num);
return 0;
}
//app.c
#include<stdio.h>
int num = 5;
void func(){
printf("fun in app.c");
}
引用另个一个文件中的函数
如果在另外一个文件中有一个函数需要在当前文件下使用,但是又不需要全部的函数,则可以通过extern的方法对其进行声明,则可以不需要加入一个头文件,具体使用方法和全局变量相同。
// main.c
#include<stdio.h>
int main(){
extern void func();
func();
return 0;
}
// app.c
#include<stdio.h>
void func(){
printf("fun in a.c");
}