包含两个整数(并且只有两个整数)的结构是否保证是sizeof(int)的两倍?

J. *_*rez 1 c++ memory struct

假设我定义了一个结构:

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)?如果不能保证,是否有任何编译器或情况不适用?

ere*_*non 6

通常,它将具有该大小.但要确保添加static_assert:

static_assert(sizeof(intpair) == sizeof(int) * 2, "Unexpected struct size");
Run Code Online (Sandbox Code Playgroud)

如果断言发射,你可以抓头寻找解决方案.否则,你会没事的.(为什么你需要这个顺便说一下?)