123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- /*
- * 文件名: mem.h
- * 目标: 内存管理工具的头文件
- */
- #ifndef MEM__H
- #define MEM__H
- #include "stdlib.h"
- // 开关
- #define BUILD_VTMEM 1
- // 默认情况
- #define safeCalloc(n, size) (calloc((n), (size)))
- #define safeFree(p) ((((p)!=NULL) ? free(p) : NULL), (p)=NULL)
- #define print_memInfo() NULL
- #define safeFree_ free
- #if BUILD_VTMEM
- #undef safeCalloc
- void *safeCalloc(size_t n, size_t size);
- #if DEBUG_VTMEM
- #undef safeFree
- #undef safeFree_
- #undef print_memInfo
- void safeFreeDebug(void *p);
- int print_memInfo();
- #define safeFree safeFreeDebug
- #define safeFree_ safeFreeDebug
- #else
- #undef safeFree_
- void safeFree_(void *p);
- #endif // DEBUG_VTMEM
- #elif DEBUG_VTMEM
- #error "The option \"debug afmem\" can be turned on only when the option \"build afmem\" is turned on"
- #endif // BUILD_VTMEM
- #endif // MEM__H
|