unions相关内容

通过指针访问C工会会员

是否通过指针访问工会成员,如下面的例子中,导致C99未定义的行为?这样做的目的似乎很清楚就够了,但我知道有关于走样和工会的一些限制。 工会{INT I;焦炭℃; } U;为int * IP =&放大器; u.i; 字符* IC =安培; u.c;*的ip = 0; * IC ='A'; 的printf(“%C \\ N”,u.c); 解决方案 是未指定的行为(从不确定略有不同),比一,这 ..
发布时间:2016-08-18 22:41:14 C/C++

C:在哪里工会实际使用?

我有我一个例子,其中一个类型的排列是有保障,工会为max_align。我要寻找在工会实际使用,来解释我的朋友一个更简单的例子。 解决方案 我解析文本时,通常采用的工会。我用的是这样的: 的typedef枚举数据类型{INTEGER,FLOAT_POINT,STRING}数据类型;工会的typedef DataValue { INT v_int; 浮v_float; ..
发布时间:2016-08-18 21:57:54 C/C++开发

&是什么QUOT;在东西请求成员的*******'不是一个结构或联合"意思?

是否有什么这个错误意味着什么?一个简单的解释 请求的东西不是一个结构或联合成员“*******” 我遇到它,我一直在学习C的时候好几次,但我没有得到一个线索,就是这个意思。 解决方案 这也恰好如果你想,当你有一个指针来访问一个实例,反之亦然:结构美孚 { INT X,Y,Z; };结构foo的,* B =放大器;一个;b.x = 12; / *这将产生错误,应该是B-> X或( ..
发布时间:2016-08-18 12:52:49 C/C++

工会“双关语”结构瓦特/"公共初始序列":为什么C(99+),而不是C ++,规定了“联合类型的可见声明”?

背景 通过联盟通常通过@ecatmur引述以下位,在这里(的 GCC IMPL高清http://stackoverflow.com/a/19807355 GCC的链接中包含了一些有趣的讨论,揭示委员会和供应商混乱的一个相当大的量/冲突的跨pretations - 围绕联盟成员结构 S,双关语和走样 - 跨越C和C ++ 在那年底,我们再联系到的重头戏 - 另一个线程的BugZilla,的 h ..
发布时间:2016-08-17 23:24:37 C/C++开发

能否工会在声明中初始化?

举例来说,假设我们有一个联盟 的typedef工会{ 无符号长U32; 浮F; } U_U32_F; 在这个联盟类型的变量声明,有没有办法设置一个初始值? U_U32_F U = 0xffffffff的; //没有工作...有一个正确的语法呢? 解决方案 使用的初始化列表: U_U32_F U = {}为0xffffffff; 您可以通过设置其他成员比第一次 U_U32_F U ..
发布时间:2016-08-17 22:49:19 C/C++

用C联盟的例子

我在找一些工会的例子,而不是了解工会工作,我希望我做的,但是看到哪种黑客的人与工会做的。 所以,随时分享你的工会破解(当然,:)一些解释) 解决方案 一个典型就是要重新present“未知”类型的值,如一个简单的虚拟机的核心是: 的typedef枚举{INTEGER,STRING,REAL,指针}类型;typedef结构 { 输入型; 工会{ INT整数; 字符*串; ..
发布时间:2016-08-17 22:42:21 C/C++

联盟uint32_t的和uint8_t有[4]未定义行为?

在href=\"http://stackoverflow.com/a/8568531/1025391\">这个答案有人说,这将是未定义行为一个整数分解成其字节 工会地址{ uint8_t有addr8 [4]; uint32_t的addr32; }; 到现在为止我认为这将是罚款的方式做这样的事情地址= {127,0,0,1}; ,并得到相应的 uint32_t的的回报。 (我承认这可能会根 ..
发布时间:2016-08-17 22:30:15 C/C++开发

工会和类型双关

我一直在寻找了一段时间,但无法找到一个明确的答案。 很多人说,使用工会输入,双关语是不确定的和不好的做法。为什么是这样?我看不出有任何理由为什么它会做任何事情不确定的考虑你写的原始信息的内存不会只是改变它自己的协议(除非它超出了堆栈范围,但是这不是工会的问题,这将是糟糕的设计)。 人们引用严格别名规则,但在我看来,要像说你不能这样做,因为你不能做到这一点。 还有什么是工会如果不输入双关意义呢 ..
发布时间:2016-08-17 22:27:36 C/C++开发

结构内不C99匿名工会吗?

问题这里很简单code我有: 枚举NODE_TYPE { T_INT,T_DOUBLE };结构int_node { int值; };结构double_node { 双重价值; };结构节点{ 枚举类型NODE_TYPE; {工会 结构int_node INT_N; 结构double_node double_n; ..
发布时间:2016-08-17 22:10:33 C/C++

当有人会用一个工会吗?它是从唯一的C-天残?

我已经学会了,但没有真正得到工会。每个C或C ++的文字我通过介绍他们(有时在传球),但它们往往会给为什么或者使用它们很少有实际的例子。当工会在现代(甚至遗留)的情况下有用吗?当你有非常有限的空间内工作我只有两个猜测是编程的微处理器,或者当你正在开发一个API(或类似的东西),并要强制最终用户只有一个几个对象/类型的实例,在一次。在这两种猜测甚至接近吧? 解决方案 工会通常用于与该公司鉴别 ..
发布时间:2016-08-17 21:45:56 C/C++开发

在sizeof的C / C联合++

什么是C / C ++ sizeof运算工会?它是sizeof运算里面的最大的数据类型?如果是这样,编译器如何计算如何移动堆栈指针如果工会的小数据类型之一,是积极的? 解决方案 标准答案在第9.5节的所有问题: 在联合中,数据成员的至多一个可以在任何时间被激活,即,数据成员的至多一个的值可以在任何时间被存储在一个联盟。 [注:一种特殊的担保是为了简化使用工会提出:如果POD联合包含几 ..
发布时间:2016-08-17 21:37:50 C/C++开发

关于用C工会问题

我读到有关联合从K&放C,R,据我了解,在工会单个变量可以容纳几种类型中的任何一个,如果事情是存储为一类,并提取作为另一个结果是纯粹的实现定义的。 现在请检查该code片断: #包括LT&;&stdio.h中GT; 诠释主要(无效){ 工会{ INT I; 炭CH [2]; }; 工会U; u.ch [0] = 3; u.ch [1] = 2; 的printf(“%d个%D \ ..
发布时间:2016-08-17 21:16:07 C/C++

为什么我们需要C3工会?

当工会应该被使用?我们为什么需要他们? 解决方案 联盟经常被用来整数的二进制重新presentations之间进行转换,浮 工会 { INT I; 浮F; } U;//转换浮点位整数: u.f = 3.14159f; 的printf(“作为整数%08X \\ n”,u.i); 尽管这是根据C标准(你只应该读这是最近写的字段),它会在一个定义良好的方式行事在几乎任何编译器。技术上未 ..
发布时间:2016-08-17 21:09:42 C/C++

一个结构及在C联盟之间的区别

有没有什么很好的例子给之间的差值结构和联盟? 基本上我知道结构使用它的成员和联盟使用最大的成员的内存空间中的所有内存。是否有任何其他操作系统级别的区别? 解决方案 通过工会,你只应该使用的元素之一,因为它们都储存在同一个地方。这使得它非常有用,当你想存储的东西,可能是多种类型之一。一个结构,在另一方面,有一个单独的存储器位置为它的每个元素,它们都可以一次使用。 要给他们使用一个具体的例 ..
发布时间:2016-08-17 20:48:40 C/C++

在C和C工会的目的++

我用工会早前舒适;今天,当我读到这篇文章,我感到震惊,才知道,这$ C $ç 工会ARGB { uint32_t的颜色; 结构componentsTag { uint8_t有B: uint8_t有克; uint8_t有ř; uint8_t有一个; } 组件;}像素;pixel.colour = 0xff ..
发布时间:2016-08-17 20:34:49 C/C++开发

什么是升压相当于::变体STD C ++?

我要寻找替代C风格的结合。提高::变种就是这样的一个选项。是否有性病ç什么++? 工会{ INT I; 双D; } 解决方案 由于一些评论说:不,有标准C无升压变酷似++。也许在几年内就会有,但为什么要等 - 使用升压变今天 的编辑(四年后,2016年):的在C ++ 17会有的std ::变种。相似但不完全相同的boost ::变种。所以,当你的编译器支持C ++ 17,你 ..
发布时间:2016-08-12 18:10:53 C/C++开发

奇怪的C ++布尔铸造行为(真!=真)

刚刚看了一个内部​​大学螺纹: 的#include<&iostream的GT; 使用命名空间std;工会ZT { 布尔B: INT I; };诠释的main() { ZT瓦; 布尔A,B; 一个= 1; B = 2; CERR<<(布尔)2';<的static_cast<布尔>(2)LT;< ENDL; // 11 CERR&所述;&下 ..
发布时间:2016-08-12 09:38:36 C/C++开发