假设我定义了一个结构:
struct intpair
{
int i1;
int i2;
/*Other non-virtual members can go here*/
};
Run Code Online (Sandbox Code Playgroud)
是否sizeof(intpair)
受c ++标准的保证2*sizeof(int)
?如果不能保证,是否有任何编译器或情况不适用?
通常,它将具有该大小.但要确保添加static_assert:
static_assert(sizeof(intpair) == sizeof(int) * 2, "Unexpected struct size");
Run Code Online (Sandbox Code Playgroud)
如果断言发射,你可以抓头寻找解决方案.否则,你会没事的.(为什么你需要这个顺便说一下?)