13
だからここに私が作成したいくつかのマクロです:C:マクロでトークンの貼り付けを展開
#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は、それらを貼り付ける際にリテラル文字列と見なされるようです。
方法はありますか?