| 123456789101112131415161718192021222324252627282930313233343536 |
- #ifndef _DS_COMMON_H_
- #define _DS_COMMON_H_
- #include <stdlib.h>
- // data type
- typedef void* ds_data_t;
- // function used for traversal a container
- typedef void (*func_each)(void*);
- typedef void (*func_destroyer)(ds_data_t);
- // function used for comparing two values
- typedef int (*func_comparer)(ds_data_t, ds_data_t);
- typedef int (*func_foreach)(func_each cb);
- typedef int (*func_sort)(func_comparer comparer);
- // memory
- typedef void* (*func_malloc)(size_t);
- typedef void (*func_free)(void* ptr);
- // install new mem-allocate function
- void ds_setup(func_malloc m, func_free f);
- // default implementings of useful functions
- void ds_cb_default_destroyer(ds_data_t);
- void ds_cb_default_each(ds_data_t);
- int ds_cb_default_comparer(ds_data_t, ds_data_t);
- #define IMPL_FOREACH \
- (void*)0
- #define UNUSED(x) (void)(x)
- #define DEF_ARRAY_SIZE 32
- #endif
|