这可能是次要的,但我很好奇原因。
这来自我朋友的一个练习代码:
#include <iostream>
using namespace std ;
extern int* PPPP;
void main(){
cout<<"*PPPP"<<*PPPP<<endl;
}
错误地,PPPP 实际上没有在任何地方宣布。但奇怪的是,我们可以将它编译成一个静态库。但是,我们不能把它做成一个dll,有链接错误(未解决的外部sysmbol pppp)
我们猜测这是因为在制作静态库时,名称 PPPP(虽然是 extern)确实在内存中有一个空间,所以,这没有问题。
我们对此完全不确定。我们希望听到更多和准确的信息。
提前致谢。