Prefer Compiler Error to Runtime Error - taking advantage of the syntax check flag

寫代碼難免會有bug,所以我們會寫很多Test來確保我們的代碼能夠正常工作。但是爲什麼不從源頭上避免bug的發生呢?
Compiler可以幫助我們探測到很多潛在的bug,我們所要做的只是合理的設置編譯參數、並充分利用C++的各種特性。

通常我們可以利用編譯器提供的Syntax Check功能來檢測代碼,這樣可以避免生成大量臨時的obj文件。下面是用於代碼檢測的推薦編譯參數。

VC8:
命令行參數
/Zc:forScope /Zc:wchar_t /Wp64 /W4 /Wall /O2 /GR /EHsc /nologo /Zs
你可以用/wd來屏蔽某些warning,比如以下的warning通常可以忽略:
4061,4365,4619,4625,4626,4668,4710,4820

Intel Compiler 10:
命令行參數
/Zc:forScope /Zc:wchar_t /Wcheck /Wport /Wp64 /W4 /Wall /O3 /GR /GX /Qms0 /nologo /Zs
你可以用/Qwd來屏蔽某些warning,比如以下的warning通常可以忽略:
383,810,981

GCC:
命令行參數
-O3 -ansi --extra-warnings -W -Wall -fsyntax-only
你可以用-W來增加額外的檢查,比如下面這些:
           "aggregate-return","cast-align","cast-qual","char-subscripts",
            "comment","conversion","deprecated","effc++",
            "float-equal","format=2","missing-format-attribute","missing-noreturn",
            "old-style-cast",
            "overloaded-virtual", "packed","padded",
            "pointer-arith","redundant-decls","shadow","sign-promo","synth",
            "trigraphs","no-unknown-pragmas","write-strings"
發佈了40 篇原創文章 · 獲贊 5 · 訪問量 21萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章