這可能是次要的,但我很好奇原因。編譯器如何對待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