これが私が作成したいくつかのマクロです:
#define MODULE_NAME moduleName
#define MODULE_STRUCT MODULE_NAME ## _struct
#define MODULE_FUNCTION(name) MODULE_NAME ## _ ## name
これらの定義の後で、次の拡張を実行したいと思います。
MODULE_STRUCT --> moduleName_struct
MODULE_FUNCTION(functionName) --> moduleName_functionName
ただし、トークン貼り付け演算子を追加すると、MODULE_FUNCTIONおよびMODULE_STRUCT内でのMODULE_NAMEの展開は発生しなくなりました...それらを一緒に貼り付ける場合、MODULE_NAMEはリテラル文字列と見なされるようです。
これを回避する方法はありますか?