C 學習(9) 配置編譯器 編譯器擴充套件

2021-09-18 06:16:24 字數 1159 閱讀 9549

亞歷克斯於2023年9月19日| 最後由alex於2023年9月26日修改

c ++標準定義了程式在特定情況下應如何表現的規則。在大多數情況下,編譯器將遵循這些規則。但是,許多編譯器實現了對語言的更改,通常是為了增強與其他語言版本(例如c99)的相容性,或者出於歷史原因。這些特定於編譯器的行為稱為編譯器擴充套件

編寫使用編譯器擴充套件的程式允許您編寫與c ++標準不相容的程式。使用非標準擴充套件的程式通常不會在其他編譯器(不支援那些相同的擴充套件)上編譯,或者如果它們這樣做,它們可能無法正確執行。

令人沮喪的是,預設情況下通常會啟用編譯器擴充套件。這對新學習者來說尤其具有破壞性,他們可能認為某些行為是官方c ++標準的一部分,而實際上他們的編譯器過於寬容。

因為編譯器擴充套件從來不是必需的,並且導致程式不符合c ++標準,所以我們建議關閉編譯器擴充套件。

最佳實踐

禁用編譯器擴充套件以確保您的程式(和編碼實踐)符合c ++標準,並且可以在任何系統上執行。

禁用編譯器擴充套件

對於visual studio使用者

要禁用編譯器擴充套件,請在solution explorer視窗中右鍵單擊專案名稱,然後選擇properties:

在「 專案」對話方塊中,首先確保「 配置」字段設定為「 所有配置」。

然後,單擊「 c / c ++」>「語言」選項卡,並將「 禁用語言擴充套件

」設定為「 是」(/ za)。

對於code :: blocks使用者

通過「設定」選單》「編譯器」>「編譯器標誌」選項卡禁用編譯器擴充套件,然後查詢並檢查-pedantic-errors選項。

對於gcc / g ++使用者

您可以通過將-pedantic-errors標誌新增到編譯命令列來禁用編譯器擴充套件。

c 編譯器編譯過程

編譯過程 編譯過程分為四步 預處理 編譯 彙編 連線 1.預處理 預處理主要處理原始檔中的 include define 等預處理等命令 預處理主要完成的工作有 參考 程式設計師的自我修養 1 刪除 define,展開巨集 2 處理條件編譯指令。預處理程式先判斷條件,再根據條件修改源 3 刪除注釋 ...

09 編譯器擴充套件SEH

1 try finally程式塊 tryfinally2 try finally程式塊特徵測試 include include void testexception finally int main 第一種情況continue結果 第二種情況break結果 第三種return情況結果 2 區域性展開...

Web編譯器Visual Studio擴充套件

乙個visual studio擴充套件,用於編譯less,sass,jsx,es6和coffeescript檔案。請參閱更改日誌 以了解更改和路線圖。右鍵單擊,然後.less,scss,styl,jsx,es6或.coffee在solution explorer檔案來設定編譯。呼叫的檔案compil...