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修饰变量的时候也是这么个情况。