Cppcheck(版本 1.46.1)对像这样的枚举给出以下警告:
enum DATABASE_TYPE
{
DATABASE_TYPE_UNKNOWN = -1, // <- line of warning
DATABASE_TYPE_ORACLE,
DATABASE_TYPE_MSACCESS
};
冗余代码:找到以数字常量开头的语句
我不认为这是多余的。能够做这样的事情是非常重要的。
这是 cppcheck 的错误还是我什么也没看到?
更新
我设法把它归结为一个最小的例子。由于 cppcheck 有 2 个(更多)错误,这使这变得复杂,这使得我的减少看起来没有效果。
有 5 个文件:a.h
、a.cpp
、和b.h
,内容如下。
VC9 编译它没有警告(警告级别 4)。b.cpp
inc.h
// a.h
#pragma once
#include "inc.h"
// a.cpp
#include "a.h"
#include "b.h"
int main()
{
return 0;
}
// b.h
#pragma once
#include "inc.h"
// b.cpp
#include "b.h"
//inc.h
#pragma once
enum MY_ENUM_TYPE
{
INVALID_VALUE = -1,
FIRST_VALUE,
SECOND_VALUE
};
所以现在我很确定这是cppcheck的一个错误。有不同意见吗?