gpt4 book ai didi

c - 错误 : Redefinition of union

转载 作者:太空狗 更新时间:2023-10-29 16:40:57 28 4
gpt4 key购买 nike

在下面的代码中:

typedef struct
{
union U
{
int a;
char b;
}U1;
}A;

typedef struct
{
union U
{
int a;
char b;
}U1;
}B;

编译器给出错误“[Error] redefinition of 'union U'”。但这些 union 是不同结构的成员。所以一般不会有变量名干扰的机会。那么这个错误的原因是什么?

最佳答案

那里没有将名称分离到 namespace 中,您实际上正在尝试重新定义。

片段:

typedef struct { union U { int a; char b; } U1; } A;

这里没有显着差异:

union U { int a; char b; };
typedef struct { union U U1; } A;

你可以通过简单地为你的类型引入人工命名空间来解决它:

typedef struct { union AU { int a; char b; } U1; } A;
typedef struct { union BU { int a; char b; } U1; } B;

或者,如果 union 意味着(并将保持)相同的类型,只需定义它一次:

union U { int a; char b; };
typedef struct { union U U1; } A;
typedef struct { union U U1; } B;

关于c - 错误 : Redefinition of union,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21569663/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com