这个错误意味着什么?
request for member '*******' in something not a structure or union
Run Code Online (Sandbox Code Playgroud)
在我学习C的时候,我已经好几次遇到过它,但我还没有弄清楚它意味着什么.
我正在将用C++编写的库翻译成C#,关键字"union"只存在一次.在结构中.
将它翻译成C#的正确方法是什么?它做了什么?它看起来像这样;
struct Foo {
float bar;
union {
int killroy;
float fubar;
} as;
}
Run Code Online (Sandbox Code Playgroud) 如何使用boost库中的变体和任何内部工作?在我正在进行的项目中,我目前使用标记的联合.我想使用其他东西,因为C++中的联合不允许您使用带有构造函数,析构函数或重载赋值运算符的对象.
我查询了任何和变体的大小,并用它们做了一些实验.在我的平台中,variant采用其最长可能类型的大小加上8个字节:我认为我只是8字节的类型信息,其余的是存储值.另一方面,任何只需要8个字节.由于我在64位平台上,我猜任何只是一个指针.
怎么知道它有什么类型?Variant如何通过模板实现它的功能?在使用它们之前,我想更多地了解这些类.
这里是我所遇到的非常简化的问题代码:
enum node_type {
t_int, t_double
};
struct int_node {
int value;
};
struct double_node {
double value;
};
struct node {
enum node_type type;
union {
struct int_node int_n;
struct double_node double_n;
};
};
int main(void) {
struct int_node i;
i.value = 10;
struct node n;
n.type = t_int;
n.int_n = i;
return 0;
}
我不明白的是:
$ cc us.c $ cc -std=c99 us.c us.c:18:4: warning: declaration does not declare anything us.c: In function ‘main’: us.c:26:4: error: ‘struct node’ …
C/C++中联合的大小是多少?它是最大数据类型的sizeof吗?如果是这样,如果联合的较小数据类型之一处于活动状态,编译器如何计算如何移动堆栈指针?
该标准定义了Unions不能用作Base类,但是有没有具体的推理呢?据我所知,Unions可以有构造函数,析构函数,成员变量和操作这些varibales的方法.简而言之,Union可以封装可以通过成员函数访问的数据类型和状态.因此,它在大多数常见术语中有资格成为一个类,如果它可以作为一个类,那么为什么它被限制作为一个基类呢?
编辑:虽然答案试图解释推理我仍然不明白联盟作为派生类是如何比联盟只是一个类更糟糕.因此,为了获得更具体的答案和推理,我将推动这一点获得赏金.对已经发布的答案没有违法行为,谢谢!
我已经安装了python 3.3.2和pygame 1.9.2a0.每当我尝试输入pygame时输入:
导入pygame
我收到以下错误消息:
Python 3.3.2 (v3.3.2:d047928ae3f6, May 16 2013, 00:03:43) [MSC v.1600 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> import pygame
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
import pygame
ImportError: No module named 'pygame'
>>>
Run Code Online (Sandbox Code Playgroud)
我解决了一些与此错误相关的问题,但没有一个解决方案有帮助.我有64位机器与Win7操作系统
我正在寻找一些工会的例子,不是为了理解工会是如何工作的,希望我能做到,而是要看看人们对工会做了哪种黑客攻击.
所以随时分享你的工会黑客(当然有一些解释:))
如果我创建一个const联合对象(例如在下面的代码中),那么就不能完成成员赋值.那么在任何情况下都有使用const联合对象吗?
union un
{
int i;
float f;
char c;
};
const union un a;
/// ! a.i = 10; error.
Run Code Online (Sandbox Code Playgroud)