首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >停止检查unusedStructMember

停止检查unusedStructMember
EN

Stack Overflow用户
提问于 2021-04-27 03:38:38
回答 1查看 439关注 0票数 1

cppcheck版本:2.3

1.扫描以下代码(rsvd.c)

代码语言:javascript
运行
复制
typedef struct {
    int a;
    // cppcheck-suppress unusedStructMember
    int b;
    int c;
} test;


int main()
{
    test A;
    A.a = 5;

    return 0;
}

运行cppcheck --inline-suppr --enable=all rsvd.c,结果如下(如预期的):

检查rsvd.c .

rsvd.c:7:9: style: struct成员'test::c‘从未使用过。unusedStructMember

int c;

rsvd.c:14:9:样式:变量'A.a‘被分配给一个从未使用过的值。unreadVariable

A.a = 5;

2.扫描下列代码

代码语言:javascript
运行
复制
typedef struct {
    int a;
    int b;
    int c;
} test;


int main()
{
    test A = {1, 2, 3};
    return 0;
}

结果如下(未预期):

检查rsvd.c .

rsvd.c:3:9: style: struct成员'test::a‘从未使用过。unusedStructMember

int a;

rsvd.c:4:9: style: struct成员'test::b‘从不使用。unusedStructMember

int b;

rsvd.c:5:9: style: struct成员'test::c‘从未使用过。unusedStructMember

int c;

rsvd.c:11:12:样式:变量'A‘被分配给一个从未使用过的值。unreadVariable

试验A= {1,2,3};

在前面的代码中,已为结构成员变量分配了一个值。这是一个假阳性的工具。我该如何解决这个问题?非常感谢。

EN

回答 1

Stack Overflow用户

发布于 2022-01-09 19:29:25

这在Cppcheck是个假阳性。我为这个问题提交了https://trac.cppcheck.net/ticket/10699文件。

不幸的是,在所有情况下都不能很好地处理带括号的初始化程序。这一情况正在得到改善。在某些情况下,当您转而使用(/)时,这些警告就会消失,但是您不应该这样做。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67276661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档