<分区>
假设我定义了一个结构:
struct intpair
{
int i1;
int i2;
/*Other non-virtual members can go here*/
};
c++标准保证sizeof(intpair)
是2*sizeof(int)
吗?如果不能保证,是否有任何编译器或情况不成立?
<分区>
假设我定义了一个结构:
struct intpair
{
int i1;
int i2;
/*Other non-virtual members can go here*/
};
c++标准保证sizeof(intpair)
是2*sizeof(int)
吗?如果不能保证,是否有任何编译器或情况不成立?
最佳答案
通常,它会有那个大小。但为了确保,添加一个 static_assert:
static_assert(sizeof(intpair) == sizeof(int) * 2, "Unexpected struct size");
如果断言曾经触发,您可以挠头寻找解决方案。否则,你会没事的。 (顺便说一句,你为什么需要这个?)
关于c++ - 包含两个整数(并且只有两个整数)的结构是否保证是 sizeof(int) 的两倍大?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46082835/