我必须实现 malloc/realloc/free 的优化版本(为我的特定应用程序量身定制)。目前代码在特定平台上运行,但如果可能的话,我想以可移植的方式编写它(平台将来可能会改变),或者至少我想将可能的平台差异集中在一个单一的点(可能是 .h)。我知道一些问题:
- 内存对齐的差异
- 适合“通用”分配的最小内存块大小的差异
- 指针大小的差异
(这里我将忽略用于内存分配的基本系统服务的差异,因为在某些嵌入式系统上它们可能根本不可用。假设我们在一个大的预分配内存块上工作以用作“堆”)。
问题:
- C 中是否有用于这种目的的标准宏或函数?
- 在这份工作中我还可能面临哪些其他问题?