和小白一起学数据结构(四)
昨天博主遇到十一点后发文不过审的问题,非常糟心。想弃了cdsn这枚小贱人(哼),但又想到和博主小白一起学习的你们,还是决定以后更新时间放在晚上十点之前(看来第二天的文要提前写了qaq)。
我们今天来干嘛,今天就跟博主一起好好梳理复习一遍c语言中涉及到的内存分配问题。有些同学跟博主反映博客东西太基础了,要小博加一些高大上的内容,emmm,说到这个高大上啊,例如卷积神经网络、人脸语音智能识别等等这种东西的学习,首先要打好扎扎实实的数理基础才行。当下整个业界包括学校的风气都有些浮躁,刚学了几行python代码就开始搞人工智能,刚学了几个c语法知识就开始自己搞编译器,您觉得可行吗?
承认学计算机要有折腾的精神,但我们自己不能无头苍蝇一样瞎折腾,行动本身才是目的,立足于踏踏实实的土地上,唯有如此,我们生命和技术的力量才不至于枯竭。来吧,搓搓手继续啃基础~
一、结构的存储分配
在座各位,肯定都明白机器内存分配对程序的运行效率有多重要。今天,首先我们就来梳一遍结构的存储分配问题。编译器按照成员列表的顺序,依次给每个成员分配空间。只有当存储成员时满足正确的边界对齐要求时,成员之间才可能出现用于填充的额外空间。
系统禁止编译器在一个结构的起始位置跳过几个字节来满足边界对齐的要求,因此所有结构的存储位置必须是结构中边界要求最严格的数据类型所要求的位置。
如何优化内存的利用率呢?
- 在声明