2017-02-23 14 views
0

別のマクロのパラメータであるマクロがあり、そのパラメータがマクロ定義で文字列化される場合、パラメータであるマクロではなく文字列化できますか?例を次に示します。入れ子にされたマクロの文字列化

#define EXAMPLE "original" 
#define CONCATENATE(X) "Concatenate Strings " #X 

CONCATENATE(BYTE) //Results as "Concatenate Strings EXAMPLE" 
        //I need "Concatenate Strings original" 

パラメータとして与えられたマクロの元の値を文字列にする方法はありますか?

+0

の他のタイトルは、もう少し一般的であるのに対し、まだこの質問のタイトルを直接特定の問題に関連している可能性重複している可能性があり:CONCATENATE完全なラッパーが行うことによって例えば

、。 – ugar

答えて

1

文字列化演算子は、トークンを生成するときにマクロ引数展開を抑制します。それを強制するには、引数を中間のマクロを通して渡す必要があります。

#define CONCATENATE_(X, Y) X #Y 
#define CONCATENATE(X) CONCATENATE_("Concatenate Strings", X) 
関連する問題