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};
}
答案 0 :(得分:-1)
正如上面的评论中所提到的,part1
被视为"使用"因为您在以下行中明确地为其字段(a
和b
)分配值:
part1.a = 2;
part1.b = 3;
从不使用 part2
,只在行中初始化:
struct complex part2 = {4, 5};
part3
更有趣,我很惊讶您的编译器没有抛出错误。通过执行以下操作:
struct complex part3 = {part3.a = 7, part3.b = 8};
您首先分配part3.a = 7
和part3.b = 8
,然后这些分配的结果将用于初始化结构(part3.a = 7
评估为7
,{{1} }评估为part3.b = 8
)。它基本上变成了以下一组陈述:
8
我希望您的编译器抛出错误,因为您在实例化之前尝试将值分配给part3.a = 7;
part3.b = 8;
struct complex part3 = {7, 8};
的字段。这是未定义的行为。