我正在尝试在从 Klocwork(KW) 生成的 C++ 代码中修复以下代码异味:
MISRA.INIT.BRACES:初始化器大括号放置不正确
下面是我试图清理的代码片段。
typedef char charString[10];
enum SomeEnum
{
BLAH1_e,
BLAH2_e,
BLAH3_e
};
struct ParentStruct
{
SomeEnum myEnumValue;
charString myCharStringValue;
};
// This is the the part that KW is not happy about
// KW complaining about initializer bracer placement
const ParentStruct myParent[3] =
{
{BLAH1_e, "String1"},
{BLAH2_e, "String2"},
{BLAH3_e, "String3"}
}
我尝试了许多不同的护腕放置方式,但似乎无法弄清楚我目前拥有的护腕放置的确切问题。这不会产生任何编译错误,也不会对代码产生负面影响。也许这只是KW,但只是想在我完全放弃之前得到一些想法。
下面是我尝试的另一种护腕放置,以防有人将其作为答案扔掉:
// compiles but KW does not like this as well
const ParentStruct myParent[3] =
{
{BLAH1_e, {"String1"}},
{BLAH2_e, {"String2"}},
{BLAH3_e, {"String3"}}
}