⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mempool.h

📁 傅立叶变换和小波变换是图像压缩的重要工具。该代大戏是利用小波变换进行图像压缩。
💻 H
字号:
#ifndef CRB_MEMPOOL_H
#define CRB_MEMPOOL_H

#include <crblib/inc.h>

struct MemBlock
{
  struct MemBlock * Next;
  char * MemBase;
  char * MemPtr;
  long MemLength;
  long MemFree;
};

typedef struct MemPoolStruct
{
  long HunkLength;
  struct MemBlock * CurMemBlock;
  struct MemBlock * MemBlock;
  long AutoExtendNumItems;
  long NumFreedHunks;
  long MaxNumFreedHunks;
  void ** FreedHunks;
  long NumItemsActive;
} MemPool;

// cool autoPool functions for really lazy people;
void * AutoPool_GetHunk( MemPool ** pPool,int * pNumHunks, int HunkSize);
void   AutoPool_FreeHunk(MemPool ** pPool,int * pNumHunks, void * Hunk);
void   AutoPool_Destroy(MemPool ** pPool,int * pNumHunks);

extern MemPool * AllocPool(long HunkLength,long NumHunks,long AutoExtendNumItems);
extern bool ExtendPool(MemPool * Pool,long NumHunks);
extern void FreePool(MemPool * Pool); /*ok to call this with Pool == NULL*/
extern void ResetPool(MemPool * Pool);
extern void * GetPoolHunk(MemPool * Pool,bool AutoExtendFlag);
extern bool FreePoolHunk(MemPool * Pool,void *Hunk);

 /* NOTEZ: GetPool clears the memory block to zeros*/

#define grabPool(x) GetPoolHunk(x,true)

#define MemPool_Create AllocPool
#define MemPool_Extend ExtendPool
#define MemPool_Destroy(p) FreePool(p)
#define MemPool_Reset ResetPool
#define MemPool_GetHunk(p) GetPoolHunk(p,true)
#define MemPool_FreeHunk FreePoolHunk

#endif /*CRB_MEMPOOL_H*/

⌨️ 快捷键说明

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