G 與 VC編譯器目前遇到的區別

2021-05-23 13:31:42 字數 386 閱讀 2395

在工作過程正,目前遇到二者編譯器的區別:

1。變數作用域的問題,vc不符合規範,即for   (int   i=0...){};

for   (int   i=0...){}類似這樣的**在g++和c++標準中都是合法的,而vc6不行,據說vc7可以了,不過沒有試過。

2。執行時刻型別轉換的問題。即使用dynamic_cast操作符進行型別轉換時,在vc中總是失敗,並且指標的轉換也會丟擲異常。而在g++中沒有問題。按照c++規範,對指標的轉換即使失敗也不應該丟擲異常,而應該返回乙個空指標。只有對引用的轉換失敗才丟擲異常。

3。標頭檔案的問題。我遇到過幾回,在g++編譯出現錯誤,但是把包含的標頭檔案(主要是一些涉及到stl庫的檔案)的順序改變一下,程式就沒有問題了。很奇怪,我現在也不知道原因。

VC編譯器與GCC編譯器的區別

今天無意寫了一段 發現了vc編譯器與gun的gcc編譯器還是存在區別的。畢竟gcc支援的是標準c。include struct node int main 上述 在gcc下是編譯失敗的,提示的錯誤 uknown typename node 但是放到vc編譯器下則順利編譯通過。於是按照標準c寫了另外乙...

VC編譯器引數與選項詳解

cl option.file.option file lib.command file link link opt.各命令列引數的意義如下 1 option 命令列中的 option 是指乙個或多個編譯選項。在指定選項時,需要在選項前加正斜槓 或乙個短劃線 有一些選項還會帶有引數,使用 來指定選項的...

GNU的g 編譯器備忘

之前編c 都只是用vs2012,現在要開始學習用gnu的g 編譯器,下面是寫著備忘的筆記。windows 上的安裝g 應用說明 程式 g 是將 gcc 預設語言設為 c 的乙個特殊的版本,鏈結時它自動使用 c 標準庫而不用 c 標準庫。通過遵循原始碼的命名規範並指定對應庫的名字,用 gcc 來編譯鏈...