【发布时间】:2013-07-24 14:02:41
【问题描述】:
在 c/c++ 中(我假设它们在这方面是相同的),如果我有以下内容:
struct S {
T a;
.
.
.
} s;
以下内容是否保证为真?
(void*)&s == (void*)&s.a;
或者换句话说,是否有任何保证在第一个成员之前没有填充?
【问题讨论】:
-
他们在这方面不一样
-
@MooingDuck:嗯,这取决于
...是什么。对于相同的结构定义,C++ 会以与 C 相同的方式对待它(C 结构始终满足 C++ standard-layout 要求)。
标签: c++ c memory-layout