这可能是次要的,但我很好奇原因。编译器如何对待extern变量
这来自我的朋友的做法代码:
#include <iostream>
using namespace std ;
extern int* PPPP;
void main(){
cout<<"*PPPP"<<*PPPP<<endl;
}
到错误,PPPP实际上是宣告行不通的。但好奇的是,我们可以将它编译成一个静态库。 但是,我们不能使这成为一个DLL,有链接错误(无法解析的外部sysmbol pppp)
我们猜测这是因为当做一个静态库时,名称PPPP(虽然extern)有一个空间无论如何,在内存中,所以,在这个问题上没有问题。
我们对此一点也不确定。我们希望听到更多关于此的更准确的信息。
在此先感谢。
只是好奇,但为什么与'主要'的源在一个库,静态或不是?我希望这是一个可执行文件。 – 2013-03-22 09:05:16