extern 是外部的意思。
如果 在头文件里 写的只是 几个函数的原型声明,而函数定义在别的文件中,则可以加 extern。编译器 做 链接时 会到 外面(.obj 或库)去找。
如果 在头文件里 写了完整的函数定义,那么,它就不是外部函数。不能加extern。
一般情况下,好象不用写extern,编译器在本程序找不到,自己会到库里找,找不到会报错。VC++编译器。
如果你在a.h 中声明 a。c中实现, 却在b。c中调用,又对a。h中其他东西不感兴趣,就在b。h 中 extern 就行了,我估计你那样是 在前边 include a。h 又 exturn了 所以会出现undeclare这种情况
extern就是字面的上的意思,表示由extern修饰的函数位于别的文件里,在编译的时候先认为这些函数是存在的或者在其他文件里去找,链接的时候再做处理。