C 匿名联合重新陈述错误
C++ anonymous union redeclaration error
我想创建一个可用于存储3D坐标或线性方程的结构。这是代码:
struct myStruct {
union {
// coordinates (3d)
struct {
int x,y,z;
};
// linear equation (ax+b)
struct {
int a,b,x;
};
};
};
我会收到以下错误:
error: redeclaration of ‘int myStruct::<anonymous union>::<anonymous struct>::x’
我在Linux Mint 18.04,G (5.4.0(,用-std = C 11。
编译我理解这个问题。但是有很少的问题。
- 我看到了在Windows上工作的内容,为什么?
- 实施它的最佳方法是什么,因此它在两者(Linux/Win(上都很好地工作?
只给他们名字。这应该没问题:
struct myStruct {
union {
struct coordinates { int x,y,z; };
struct linear_equation { int a,b,x; };
coordinates coord;
linear_equation lin_eq;
};
};
我还允许自己加入工会。但是,这两个结构具有相同类型和数量的成员,因此,恕我直言,进入联合的麻烦是值得怀疑的。
只是为了补充用户463035818的答案。您可以直接宣布成员,例如:
来简化工会。struct myStruct {
union {
// coordinates (3d)
struct {
int x,y,z;
} coord;
// linear equation (ax+b)
struct {
int a,b,x;
} lin_eq;
};
};
相关文章:
- 错误-我无法在VS2019中打开新的Qt项目
- 在cygwin中测试新的boost安装时出现cpp错误
- 使用Visual Studio在虚幻引擎中创建一个新的类c ++给了我太多的错误
- cout 新创建的对象引发运行时错误
- 如何组织 git 工作流以修复错误并同时引入新功能
- 当我尝试为结构分配新指针时出现堆栈溢出错误
- .exe应用程序在windows10中创建新模块时抛出错误,但在windows7中工作正常
- 如果我不使用"新"关键字,为什么会出现细分错误?
- 否则在新程序中没有以前的 if 错误
- 为什么我的代码在终端中没有输出任何内容.开始新行没有错误
- gcc 发出了与解析新表达式中的类型 ID 相关的错误
- 重载新返回错误的地址
- 创建新对象并立即为其设置属性时出现编译器错误
- C 匿名联合重新陈述错误
- 基类没有新方法错误
- *新总是错误的.永远
- 实例化新对象 - 错误
- 新对象错误消息
- Cuda可视化分析器新会话错误
- c++中的新行错误