我正在尝试修复从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"}}
}发布于 2021-11-29 12:54:58
请使用最新版本的Klocwork运行分析,并检查此问题是否已由Klocwork在您的末尾报告。
我使用的是Klocwork 2021.3,而且MISRA.INIT.BRACES检查器似乎没有像预期的那样报告代码中的任何问题。
https://stackoverflow.com/questions/65895136
复制相似问题