//demo1.c #include<stdio.h> int x = 10; //static int x = 10; void print(void) //static void print(void) { printf("Hello World! "); }
//demo2.c
#include<stdio.h> extern int x; int main(void) { //int x; printf("%d ",x); print(); return 0; }
gcc demo1.c demo2.c ./a.out
demo2可以调用demo1。
若将demo2中的extern去掉,则打印的x是随机值。并不是demo1中的,不是全局变量。
在编写单片机驱动时,比如文件1中采集到了V=ADC的值。在另一个文件中调用V就要用external V