恭喜,你发布的帖子
发布于 2021-11-20 23:27:30
2楼
七、DBMalloc数据块分配子程序:
DB_Malloc用在用户子程序开头部分,用于分配DB块和定位DB块。分配块只在第一次扫描到该子程序时才发生,之后的扫描不用重新分配。分配其实是分配最新索引到子程序的索引变量中来。定位也很简单,就是数据块头指针开始的顺序查找。定位单独做成一个子程序,DB_Locata。
八、数据块定位
九、完整的程序就是由这几个子程序组成,DBInit对数据堆进行初始化、DBLocata对数据块进行定位、DBMalloc分配数据块。
比较重要的是:索引决定子程序数据块位置,容量决定数据块字节容量以及下个块的起始地址,每个子程序都需要一个全局索引,这些索引由一个索引资源来分配,这个资源随着子程序的不断被扫描到而不断递增。再次扫描到的子程序不会再次分配数据块,只会定位数据块。
这样,无论能不能按顺序扫描到子程序,子程序都有一个自己的数据块被固定,下次扫描无论是否执行该子程序都不会改变位置。
------------------------------------------
另:其实索引变量不用按照结构中的来,DBIndex1 DBIndex2 ....,可以散落在程序中,这样不用拿纸记住使用到哪个索引变量了。
-----------------------------------------
程序是在 不欲 程序中设计的,还没有和他沟通,就不发程序源码了。(其实是我的程序设计风格太烂)
------------------------
程序的子程序中使用了几个全局变量,这个确实不好,但如果不使用全局变量那么每次调用管理模块都需要输入接口参数,这些接口在整个程序中是不变的,我试了几个子程序测试,发现会有输入错误的时候,所以还是选择使用全局变量,减少管理模块的接口。
请填写推广理由:
分享
只看
楼主