xlmalloc.h

来自「C 语言进阶」· C头文件 代码 · 共 36 行

H
36
字号
#ifndef XLMALLOC_H
#define XLMALLOC_H

union header {
	struct {
		union header  *ptr;
		unsigned long size;
	} s;
	char c[8];	// For debugging; also ensure size is 8 bytes 
};
// sheader结构是header结构的变形,主要是为了方便大家调试时观测
struct sheader {
	struct sheader *ptr;
	unsigned long	size;
};	

typedef union header HEADER;

#define	ABLKSIZE	(sizeof (HEADER)) //一个分配块的大小,这里是8个字节
//将用户的分配字节数换算成为分配块的个数,注意:加一是为这个分配块留一个头部
#define	BTOU(nb)	((((nb) + ABLKSIZE - 1) / ABLKSIZE) + 1)


#define Heapsize    (2048*8)	//为了让大家方便调试,我们只给出了一个非常小的堆空间,且是分配块大小(8字节)的整数倍
//#define Memdebug	1			//打开调试宏

//函数原型声明
extern void *SysLmalloc( int nb );
extern void SysLfree( void *blk );
extern void *SysLcalloc( int size );




#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?