【发布时间】:2015-09-15 17:40:27
【问题描述】:
据我所知,class和struct数据是一个接一个地放置的,例如:
class Foo
{
int A;
char B;
float* C;
double* D;
};
Foo Object;
char* ptr = &Object;
&(Object.A) == ptr; // all these are true
&(Object.B) == ptr+sizeof(int);
&(Object.C) == ptr+sizeof(int)+sizeof(char);
&(Object.D) == ptr+sizeof(int)+sizeof(char)+sizeof(float*);
总是这样吗?如果我在类中将所有这些数据都设为静态,它是否也有效?
【问题讨论】:
-
void *?? 上的指针运算嗯... -
“总是这样吗?” 没有。
-
非常感谢。这就是我想知道这是某种标准还是只是偶尔发生。
-
请去掉C标签,因为
class不是C语言的关键字。 -
有一个很好的标准:您的平台/架构的 ABI 和/或 PCS。