C 语言的一大优势就是对内存空间的控制,当然,在面向对象语言的压力下,程序员更喜欢轻松的语言,不喜欢自己还要顾虑内存空间。
可是,C 语言仍然有很强的生命力,尤其是在操作系统、嵌入式系统这两方面,因为要直接操作硬件,C语言就显现出自己强大的体制、机制、逻辑优势。
C语言对内存控制,有一个始终困扰初学者的问题:字节对齐!
看一段程序:
stExample结构体的大小是8 Byte. 看起来符合预期。
可是下面这个例子:
stExample结构体的大小就变成了12 Byte. 为什么元素少了,反而占用空间会多出来4 Byte?
/////////////////////////////////////////////////////////////////////////////////////////
先让我们看四个重要的基本概念:
1.数据类型自身的对齐值:
:

本文详细探讨了C语言中struct和union的字节对齐问题,解释了字节对齐的原因和规则,通过实例分析了结构体内存布局以及如何影响结构体的大小。内容涉及数据类型自身的对齐值、结构体和类的自身对齐值、指定对齐值以及有效对齐值等概念,并提到了在嵌入式系统和网络报文传输中需要注意的字节对齐问题。
最低0.47元/天 解锁文章
4582

被折叠的 条评论
为什么被折叠?



