使用宏来构造函数

Bre*_*ett 0 c macros c-preprocessor

可能重复:
用于在C中连接两个字符串的宏

我有一个看起来像这样的函数:

bool module_foo_process(void* bar) { return doMagic(bar); }
Run Code Online (Sandbox Code Playgroud)

现在,我想用宏生成它.例如,上述函数的宏看起来像这样:

MY_AMAZING_MACRO(foo)
Run Code Online (Sandbox Code Playgroud)

这允许我写下这样的东西:

MY_AMAZING_MACRO(awesome)
Run Code Online (Sandbox Code Playgroud)

得到这个:

bool module_awesome_process(void* bar) { return doMagic(bar); }
Run Code Online (Sandbox Code Playgroud)

关于如何在C中实现这一点的任何想法?

Vau*_*ato 5

#define MY_AMAZING_MACRO(name) \
  bool module_##name##_process(void* bar) { return doMagic(bar); }
Run Code Online (Sandbox Code Playgroud)