使用cppcheck检查代码



Cppcheck is an static analysis tool for C/C++ code.

cppcheck主页:
http://cppcheck.sourceforge.net/
使用说明见:
http://cppcheck.sourceforge.net/manual.html

下载安装cppcheck后, 可以如下测试:

d:\temp\cppcheck --enable=all --template=vs d:\Code\Server 2>d:\temp\result.txt

打开所有检查项,使用VS的错误报告格式,输出结果到result.txt.

为了在VC中使用方便,先建立一个bat文件,vscppcheck.bat

cppcheck --enable=all --template=vs %1 > NUL

因为只需要cerr输出,所以cout输出到NUL.

然后在 VS->工具->外部工具 中添加:

标题:cppcheck
命令:d:\jinq\vscppcheck.bat
参数:$(SolutionDir)
使用输出窗口

设好后只需点工具cppcheck菜单,就会输出代码检查结果,按<F4>可跳转到错误行。

试用结果找到了许多应该按引用传入参数却按值传参数的错误,如:
D:\Code\Server\Region\Logic\RoomMgr.cpp(20): performance: Function parameter 'sRoomName' should be passed by reference.