C的extern 说明了a的存储空间是在程序的其他地方分配的,在文件中其他位置或者其他文件中寻找a这个变量。分配内存时就是定义这个变量的过程,int a = 0;即分配了内存,extern int a; 只是在声明。 最优用法 例如a.c文件中定义int a = 5和一个函数,在a.h里写extern int a;,如果要在其他文件里调用a这个变量和函数,直接#include<a.h>即可。 a.h声明,a.c定义,b.c里包含a.h直接使用变量;