extern联接发生在什么时候

extern连接发生在什么时候extern void add()int main() {return 0}?此时没有定义add却没有编译问题,编译

extern连接发生在什么时候
extern void add();int main() { return 0;}

?此时没有定义add却没有编译问题,编译器的这个行为也不难理解。

因为add没有被调用,所以没定义也没关系。

?

extern void add();int main() {    add();    return 0;}

这样编译就不能成功,因为找不到add()的定义

test.cpp:(.text+0x5): undefined reference to `add()'

?

同样,extern修饰变量的时候也是这么个情况。