在C中的宏中使用可选参数

时间:2013-03-14 09:23:17

标签: c function macros c-preprocessor

这是一个定义函数的宏(我故意简化了我的宏):

#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_intget_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);

我怎么能用预处理器做到这一点?

0 个答案:

没有答案