向量

本质是一个可以扩展的数组,每个元素类型必须相同

支持的元素类型共13种,使用最多:uint64,ptr

定义

使用了带参数的宏来定义向量结构体

#define HBR_VECTOR_DECL(__id, __type)					\
														\
typedef struct											\
{														\
	__type					*values;					\
	int						values_num;					\
	int						values_alloc;				\
	hbr_mem_malloc_func_t	mem_malloc_func;			\
	hbr_mem_realloc_func_t	mem_realloc_func;			\
	hbr_mem_free_func_t		mem_free_func;				\
}														\
hbr_vector_ ## __id ## _t;	

*values用来实际存储元素

两个int,存储该向量的元素数量和容量

三个内存分配函数指针,决定该向量的元素存在什么地方

typedef void *(*hbr_mem_malloc_func_t)(void *old, size_t size);

typedef void *(*hbr_mem_realloc_func_t)(void *old, size_t size);

typedef void (*hbr_mem_free_func_t)(void *ptr);