#define CFG_USED(type, name, stuff) \
{ .compFunc = compare_ ## type; /* */ },
#define CFG_UNUSED(type, name, stuff) /* unused */
#define CFG_ADD(type, name, stuff) CFG_USE_ ## type (type,name,stuff)
#ifdef USING_int
#define CFG_USE_int CFG_USED
#else
#define CFG_USE_int CFG_UNUSED
#endif
...
####
static inline int _inline_cmpfunc_int(void *a, void *b)
{
int _a = *(int*)a, _b = *(int*)b;
return (_a > _b) - (_a < _b);
}
####
static foo
compare_foo(void *a, void *b) { return _inline_cmpfunc_foo(a, b); }