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

标签 c++ memory struct

<分区>

假设我定义了一个结构:

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/

相关文章:

c++ - 如何正确地使一个对象拥有另一个多态对象?

python - 我的所有 Python 模块都应该显式导入相同的基本模块吗?

linux - 跟踪线程内存和 CPU 消耗

c - c中struct中的多维数组引用

function - 如何减少 Golang 中重复函数的冗余代码?

c++ - 为什么这个结构的大小是 24?

c++ - 为什么此用户定义的转换失败?

c++ - Windows 上没有 GLUT 的 OpenGL 4.5 简单教程

c++ - 您如何直接从 Windows 上的物理内存中读取?

c++ - 将数据从客户端发送到 SQL 数据库 (MoSync)