类型和内存分配的大小

这个问题在这里已经有了答案:

  • 为什么不是sizeof等于每个成员的sizeof之和? 11个答案

  • 我的结构的实际大小(所有部分的总和)小于类型本身的大小“

    由于许多计算机操作在其工作的值在特定内存边界对齐时更快,因此C语言标准允许实现进行这种对齐。 在大多数系统中,根据int的大小,ints将在4字节或8字节的边界上对齐。 必须对齐结构的大小,以便数组中下一个结构的地址将正确对齐,因此以int对齐4字节边界开始的结构必须具有4的倍数。

    这是否意味着我失去了3个字节?

    是。 (呃,这并不完全没有,你的程序通常会因为它而更快)。现代化的机器支持2TB的RAM,这比以前更不用担心了。

    链接地址: http://www.djcxy.com/p/14071.html

    上一篇: Size of type and memory allocation

    下一篇: Memory footprint of Haskell data types