草庐IT

quick-union

全部标签

c# - 无法编码包含 union 的结构

我有一个如下所示的C++结构:structunmanagedstruct{intflags;union{intoffset[6];struct{floatpos[3];floatq[4];}posedesc;}u;};我正尝试在C#中像这样编码它:[StructLayout(LayoutKind.Explicit)]publicclassmanagedstruct{[FieldOffset(0)]publicintflags;[FieldOffset(4),MarshalAsAttribute(UnmanagedType.ByValArray,SizeConst=6)]publicin

C++ union 的未定义行为

只是阅读了一些匿名结构以及它是如何不标准的以及它的一些一般用例是未定义的行为...这是基本情况:structPoint{union{struct{floatx,y;};floatv[2];};};因此写入x然后从v[0]读取将是未定义的,因为您希望它们相同,但事实可能并非如此。不确定这是否在标准中但属于同一类型...union{float一个;floatb;};写入a然后从b读取是否未定义?也就是说,标准是否说明了数组和相同类型的顺序变量的二进制表示。 最佳答案 标准说从union其他元素中的任何元素读取比最后一个写的是未定义的行为

c++ - 如何在 C++ 中的结构中初始化 union 的结构成员?

我想将一个参数查找表(它是C中的结构数组)移植到C++。我阅读了一些问题,了解到C++中不允许使用C风格的结构初始值设定项。如何将其移植到C++?typedefstruct{charconst*property;intcount;}TYPE2;typedefstruct{intAddress;charconst*Name;union{TYPE1foo;TYPE2bar;}u;}PARAMS;//Initializetable:constPARAMSparamTbl[]={{0x1000,"Param1",{.bar={"abc",0}}},//Soon....}感谢任何帮助。

c++ - 具有 const 成员的构造函数和匿名 union

是否可以与const成员建立匿名union?我有以下内容:structBar{union{struct{constintx,y;};constintxy[2];};Bar():x(1),y(2){}};使用G++4.5我得到错误:error:uninitializedmember‘Bar::::xy’with‘const’type‘constint[2]’ 最佳答案 这是GCC中的一个问题,已在4.6版中修复。您的代码现在可以正常工作。它仍然依赖于GCC扩展,因为它使用匿名结构,但现在大多数编译器都支持它们。此外,以下代码现在可以使

c++ - 库需要 QApplication。如何在Qt Quick项目中使用QApplication?

我有一个QtQuick项目,我刚刚添加了一些源文件。尝试构建时我收到错误消息:QWidget:CannotcreateaQWidgetwithoutQApplication因为我有一个QtQuick项目,所以我使用QGuiApplication。QApplication是QGuiApplication的子类。如何使QApplication可用于新添加的源?或者有QtQuick和QWidget如何解决?源文件是显示图形的QCustomPlot库。编辑:ma​​in.cpp:intmain(intargc,char*argv[]){QGuiApplicationapp(argc,argv)

C++ std::atomic union

如何使用std::atomic将union设置为原子union?还是我必须声明union的成员是原子的?typedefunion{intinteger;floatflt;doubledbl;int*intArray;float*floatArray;unsignedchar*byteArray;}ValueUnion;classFooClass{public:std::atomicvalue;};访问union报错:foo->value.floatArray=NULL;error:nomembernamed'floatArray'in'std::__1::atomic'foo->val

c++ - 检查非事件 union 成员,公共(public)初始序列

这个问题是基于this考虑以下几点:structHdr{inttype;};structA{Hdrh;};unionBig{Hdrh;Aa;};并假设对于Bigbig我们知道big.a是union体的活跃成员。是否访问big.h.type未定义的行为?我认为确实是UB,基于:class.union...[ Note:Onespecialguaranteeismadeinordertosimplifytheuseofunions:Ifastandard-layoutunioncontainsseveralstandard-layoutstructsthatshareacommoninit

C++ union 位域任务

有人能弄清楚我为什么要使用union以及cin'ed变量和位字段的相同地址(来自SchildtsC++书中的任务)的目的是什么?换句话说,为什么我要使用unionfor:charch;structbytebit;//显示字符的二进制ASCII码。#include#includeusingnamespacestd;//abitfieldthatwillbedecodedstructbyte{unsigneda:1;unsignedb:1;unsignedc:1;unsignedd:1;unsignede:1;unsignedf:1;unsignedg:1;unsignedh:1;};un

c++ - 对于大型桌面应用程序,Qt Quick 是否足够成熟?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭11年前。我打算写一个专门为平板电脑设计的程序,主要平台是MeeGo(因为我要参加比赛)。编辑:我的程序有以下需求:大量使用C++来处理网络和低级优化动态生成内容(就像Flipboard应用所做的那样)完全定制的图形用户界面而且我发现QtQuick有以下缺点:现在与C++集成不是很容易很难表达复杂的逻辑有时很慢。例如,当显示调整大小的图像列表时,由于再次调整相同图

c++ - 成员引用基类型 'double' 不是结构或 union

我是C++的新手,不知道如何修复错误,非常感谢您的帮助发生错误的部分我试图将半径输入到cirArea[]数组中,但它似乎不起作用。这是我的部分代码:intmain(){Circle*area;doublecirRadius;intnumCircle;cout>numCircle;doublecirArea[numCircle];for(inti=0;i>cirRadius;cirArea[i].setRadius(cirRadius);}}对于setRadius():voidCircle::setRadius(doubler){if(r>=0)radius=r;else{cout所以这