C++學習(9)——配置編譯器:編譯器擴展

0.10 - 配置編譯器:編譯器擴展

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

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

編寫使用編譯器擴展的程序允許您編寫與C ++標準不兼容的程序。使用非標準擴展的程序通常不會在其他編譯器(不支持那些相同的擴展)上編譯,或者如果它們這樣做,它們可能無法正確運行。

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

因爲編譯器擴展從來不是必需的,並且導致程序不符合C ++標準,所以我們建議關閉編譯器擴展。

最佳實踐

 

禁用編譯器擴展以確保您的程序(和編碼實踐)符合C ++標準,並且可以在任何系統上運行。

禁用編譯器擴展

對於Visual Studio用戶

要禁用編譯器擴展,請在Solution Explorer窗口中右鍵單擊項目名稱,然後選擇Properties

 

Solution Explorer屬性

在“ 項目”對話框中,首先確保“ 配置”字段設置爲“ 所有配置”

然後,單擊“ C / C ++”>“語言”選項卡,並將“ 禁用語言擴展設置爲“ 是”(/ Za)

禁用語言擴展

 

對於Code :: Blocks用戶

 

通過“設置”菜單>“編譯器”>“編譯器標誌”選項卡禁用編譯器擴展,然後查找並檢查-pedantic-errors選項。

禁用語言擴展

 

對於GCC / G ++用戶

 

您可以通過將-pedantic-errors標誌添加到編譯命令行來禁用編譯器擴展。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章