0

重複の可能性:
Cで2つの文字列を連結するためのマクロ

私は次のような関数を持っています:

bool module_foo_process(void* bar) { return doMagic(bar); }

それでは、マクロで生成したいと思います。たとえば、上記の関数のマクロは次のようになります。

MY_AMAZING_MACRO(foo)

これにより、次のような記述が可能になります。

MY_AMAZING_MACRO(awesome)

そしてこれを入手してください:

bool module_awesome_process(void* bar) { return doMagic(bar); }

これをCでどのように達成できるかについてのアイデアはありますか?

4

2 に答える 2

5
#define MY_AMAZING_MACRO(name) \
  bool module_##name##_process(void* bar) { return doMagic(bar); }
于 2012-11-04T18:35:13.893 に答える
4

連結演算子を使用します##

#define MY_AMAZING_MACRO(foo) bool module_##foo##_process(void* bar) { return doMagic(bar); }

詳細については、gccオンラインドキュメントを参照してください:連結

于 2012-11-04T18:35:36.137 に答える