2009-07-22 75 views
4

我學習C++,當我在測試微軟的Visual C++ 2008速成的Eclipse Ganymede,但與克++編譯器爲默認,我已經注意到在VC++同一個碼得到一些錯誤,並在克++編譯正常,沒有錯誤或警告並正常執行,但我想知道的是什麼VC++語法和克++語法之間的區別?謝謝!差異愨的Visual C++ 2008和G ++

+0

有大量的差異,最好的選擇(與大多數問題一樣)是在這裏發佈代碼並生成錯誤。 – Justicle 2009-07-22 23:46:59

+0

感謝您的投票! – 2009-07-23 00:05:24

+0

@Justile,我想知道一般的區別。謝謝! – 2009-07-23 13:01:43

回答

0

請它添加到帕維爾的答案:

如果您正在開發跨平臺產品,請使用g ++(MingW)並堅持使用C++標準。使用由MingW提供的POSIX兼容API,其中標準設施不起作用。使用MingW構建的可執行文件不需要在目標系統上安裝特殊的運行時,但VC++ 2008需要這樣做。因此,MingW應用程序的部署更簡單。

VC++的一個優點是其優秀的IDE。 Microsoft編譯器似乎也執行一些Windows特定的優化。

不過,MingW補充了CodeBlocks IDE,可以爲您提供一個優秀的,免費的,跨平臺的C++開發環境。

4

這是一個非常廣泛的話題。這兩種編譯器廣泛符合ISO C++規範,但有些例外情況,但這些例外情況可能有所不同(例如,VC++以非標準方式處理函數中的throw說明符,而g ++在這方面符合標準)。另外,兩個編譯器都提供了相當多的擴展,這些擴展大多是互不兼容的(例如VC++ __property__interface,或g ++ typeof和計算的goto)。一般來說,最好的建議是諮詢任一產品的文檔。如果你有任何特定代碼,你有問題,並想知道爲什麼它編譯與其中一個,但不是另一個編譯,那麼它可以更詳細地回答。

+0

謝謝,你的回答非常好! – 2009-07-23 01:39:41