2012-12-25 52 views

回答

1

就像Jan Dvorak說的那樣,這取決於您是指主機系統(您正在編譯的系統)還是目標系統(您的應用程序將運行的系統)。

如果後者沒有辦法做你想做的事情,原因很簡單,這個信息只在目標系統的運行時纔可用,而預處理器只在編譯期間運行。

如果,你的編譯器應該提供預定義的MACROS,它會給你一些關於你正在編譯的系統的信息。例如,在Windows上使用MingW或MSVC進行編譯時,將定義宏_WIN32以允許您有條件地包含代碼。

但是,這是不可能給你你所尋求的信息,因爲操作系統版本是在編譯過程中通常不相關的 - 你想要的信息是 OS正在編譯上(如:Windows和Solaris)上,該編譯器版本等

0

要展開skoy的答案,對於想要確定正在編譯程序的系統信息的任何人,在sourceforge項目中有一個wiki頁面,其中包含幾個最爲預定義的宏的列表不同的東西,如operating systems,architecturescompilers