extern关键字表示变量在文件以外定义的,或是在文件后面部分才定义的。在变量定义之前加上extern关键字表示声明一个变量但不定义它,例如:
extern int a;
extern关键字也可以用于函数声明。例如:
extern int fun1( int length, int width );
因为没有函数体,编译器必定把它作为声明而不是函数定义。extern关键字对函数来说是多余的、可选的。C语言的设计者并不要求函数声明使用extern,这可能有些令人遗憾;如果函数声明也要求使用extern,那么形式上与变量声明更加一致,从而减少混乱(但这就需要更多的输入,这也许能解释为什么不要求函数使用extern的原因)。