联合中的C++结构访问联合成员
C++ struct in union acces over union member
我有一个结构,它由一个并集组成,并集由一个uint32_t和另一个(匿名)结构组成。它看起来像这样:
struct sMesswertNummer {
union {
uint32_t MesswertNummerFull;
struct {
uint16_t MesswertNummerPart:16;
uint16_t AggregatNummer:16;
uint8_t AggregatSub:8;
uint8_t AggregatTyp:8;
};
};
sMesswertNummer() { this->MesswertNummerFull=0; }
sMesswertNummer(uint16_t MesswertNummerPart,uint16_t AggregatNummer, uint8_t AggregatSub, uint8_t AggregatTyp) {
this->MesswertNummerFull=0;
this->MesswertNummerPart=MesswertNummerPart;
this->AggregatNummer=AggregatNummer;
this->AggregatSub=AggregatSub;
this->AggregatTyp=AggregatTyp;
}
};
我用类似的构造函数调用来初始化结构
MesswertNummer(0x0001,0x0002,0x30,0x02);
之后,我的变量具有正确的值,Var.MesswertNummerPart
是0x0001,Var.AggregatNummer
是0x0002,依此类推
但是,如果我调用Var.MesswertNummerFull,我会得到0x0001(是MesswertNumerPart),而不是0x02300002001(0x02->AggregateTyp,0x30->AggregationSubm 0x0002->Aggregate Nummer,0x0001->MesswertSummerPart)
如何通过调用Var.MesswertNummerFull来获取整个号码?
只需再次键入即可解决问题。MesswertNummerFull
必须是uint64_t
(16+16+8+8=48)
相关文章:
- C++ 传递指向对象的指针的指针,无法访问成员
- 从不同C++类的成员变量访问成员函数
- 使用 getter 访问成员变量C++
- 如何使用包含内部类的类实例有效地从内部类访问成员?
- 通过多个类访问成员时出错
- 如何在使用对象指针时访问成员函数
- 为什么相应成员不能正确访问成员函数指针
- 从两个不同类继承的非虚拟基类的访问成员
- 如何使用 gcc 内联汇编器代码访问成员变量
- 如何使用常数向量访问成员函数
- 访问成员函数中参数的类成员
- C++嵌套结构初始化和访问成员
- 通过指向班级第一个成员的指针访问成员是不确定的行为吗?
- 如何使用C STD :: SET中的迭代器访问成员功能
- 访问成员C 时,结构的向量生成了范围的错误
- 带指针的班级访问成员
- 从聚合类访问成员变量
- 如何访问成员变量 sqlite 回调
- ctypes/C++segfault访问成员变量
- 通过父类型的指针或直接从派生类访问成员函数的差异