c++ - 存储在结构中的元素是否彼此相邻

标签 c++ c++11 struct

如果我有一个结构,说:

struct A {
int a,b,c,d,e;
}
A m;//struct if 5 ints
int n[5];//array of 5 ints.

我知道数组中的元素是一个接一个地存储的,所以我们可以使用 *(n+i) 或 n[i]
但是在结构的情况下,每个元素是否彼此相邻存储(在结构 A 中)?

最佳答案

编译器可以根据需要插入填充,除了在第一项之前。

在 C++03 中,您可以保证在访问说明符之间增加项目的地址。

我不确定访问说明符限制在 C++11 中是否仍然存在。

关于c++ - 存储在结构中的元素是否彼此相邻,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27998080/

相关文章:

c++ - 在原始字符串文字中包含 )"而不终止所述文字

c - 为什么客户端不能在这种情况下取​​消引用指针?

c++ - 正确初始化 OpenGL 的结构数组

c++ - MFC 消息映射中的函数地址

c++ - 除法对负数停止工作

c++11 - 以 IP 地址为键的 unordered_map

c - 什么是 'forward declaration' 以及 'typedef struct X' 和 'struct X' 之间的区别?

c++ - 什么是签名目录文件成员标签?

c++ - 调试读/写字符串到二进制文件

c++ - 表达式模板与手写代码