错误:未使用的变量(struct)

时间:2018-06-09 18:20:54

标签: c gcc struct unused-variables

error: unused variable 'part2' [-Werror,-Wunused-variable]

只有part2发生错误,即使它已经初始化,只是以不同的方式。它只是一个编译问题吗?

int main(void)
{
    struct complex
    {
        int a;
        int b;
    };

    struct complex part1;
    part1.a = 2;
    part1.b = 3;

    struct complex part2 = {4, 5};

    struct complex part3 = {part3.a = 7, part3.b = 8};
}   

1 个答案:

答案 0 :(得分:-1)

正如上面的评论中所提到的,part1被视为"使用"因为您在以下行中明确地为其字段(ab)分配值:

part1.a = 2;
part1.b = 3;
从不使用

part2,只在行中初始化:

struct complex part2 = {4, 5};

part3更有趣,我很惊讶您的编译器没有抛出错误。通过执行以下操作:

struct complex part3 = {part3.a = 7, part3.b = 8};

您首先分配part3.a = 7part3.b = 8,然后这些分配的结果将用于初始化结构(part3.a = 7评估为7,{{1} }评估为part3.b = 8)。它基本上变成了以下一组陈述:

8

我希望您的编译器抛出错误,因为您在实例化之前尝试将值分配给part3.a = 7; part3.b = 8; struct complex part3 = {7, 8}; 的字段。这是未定义的行为。