extern可用于声明全局变量,使用后面定义的全局变量
#include <stdio.h>
//extern声明全局变量,将使用后面定义的globalVar全局变量
extern int globalVar;
void externtest1_1(){
printf("globalVar=%d\n", globalVar);
}
//extern修饰为外部函数,其他源文件声明该函数即可调用,默认为extern修饰
extern void externtest1_2(){
//extern声明全局变量,将使用后面定义的globalVar全局变量
extern int globalBar;
printf("修改前globalBar=%d\n", globalBar);
globalBar=20;
printf("修改后globalBar=%d\n", globalBar);
}
//在文件最后定义了globalVar变量。
int globalVar;
int globalBar;
调用externtest1_2()输出:
修改前globalBar=0
修改后globalBar=20
还可用于修饰函数为外部函数
#include <stdio.h>
//声明外部函数
void externtest1_2();
void externtest2_1(){
//声明外部文件定义的全局变量
extern globalBar;
externtest1_2();
globalBar = 50;
printf("externtest2_1修改后:%d\n\n", globalBar);
externtest1_2();
}
调用externtest2_1()输出:
修改前globalBar=0
修改后globalBar=20
externtest2_1修改后:50
修改前globalBar=50
修改后globalBar=20