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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章