bget.h
来自「这是整套横扫千军3D版游戏的源码」· C头文件 代码 · 共 59 行
H
59 行
/*
Interface definitions for bget.c, the memory management package.
*/
typedef long bufsize;
struct qlinks {
struct bfhead *flink; /* Forward link */
struct bfhead *blink; /* Backward link */
};
/* Header in allocated and free buffers */
struct bhead {
bufsize prevfree; /* Relative link back to previous
free buffer in memory or 0 if
previous buffer is allocated. */
bufsize bsize; /* Buffer size: positive if free,
negative if allocated. */
};
#define BH(p) ((struct bhead *) (p))
/* Header in directly allocated buffers (by acqfcn) */
struct bdhead {
bufsize tsize; /* Total size, including overhead */
struct bhead bh; /* Common header */
};
#define BDH(p) ((struct bdhead *) (p))
/* Header in free buffers */
struct bfhead {
struct bhead bh; /* Common allocated/free header */
struct qlinks ql; /* Links on free list */
};
#define BFH(p) ((struct bfhead *) (p))
class BGet
{
public:
BGet();
struct bfhead freelist;/* = {
{0, 0},
{&freelist, &freelist}
};*/ /* List of free buffers */
void *(*acqfcn) (bufsize size);;
void bpool (void *buffer, bufsize len);
void *bget (bufsize size);
void *bgetz (bufsize size);
void *bgetr (void *buffer, bufsize newsize);
void brel (void *buf);
void bectl (void *(*acquire) (bufsize size), bufsize pool_incr);
};
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?