这是一个定义函数的宏(我故意简化了我的宏):
#define GET_VALUE_IMPL(func_name, value_type, get_func) \
static value_type func_name(const char *token, value_type def_value) \
{ \
value_type value; \
assert(token != NULL); \
value = get_func(token, def_value); \
return value; \
}
然后,我正在使用这个宏来定义两个函数get_int
和get_string
:
GET_VALUE_IMPL(get_int, int, external_get_int);
GET_VALUE_IMPL(get_string, char*, external_get_str);
以下是我的问题:对于get_string
,我想将一个函数作为第四个参数传递给GET_VALUE_IMPL
,该函数将在分配value = get_func(token, def_value);
我怎么能用预处理器做到这一点?