[Cプリプロセッサ] マクロ引数の文字列化
C言語のプリプロセッサにおいて、引数付きマクロの引数を文字列化したいときがある。 たとえば、 int variable = 1; DEBUG_PRINT(variable); とすると、 printf(“%s is %d”, “variable”, 1); のように置換されるマクロを定義したい場合。 #define DEBUG_PRINT(x) printf(“%s is %d”, “x”, 1) としても、 printf(“%s is %d”, “x”, 1); と出力されてしまい、望む結果が得られない。 このようなときは、引数の文字列化機能を使用する。 引数名の先頭に`#’をつけることで、引数の文字列定数表現を得ることができる。 上の例の場合は次のようにする。 #define DEBUG_PRINT(x) printf(“%s is %d”, #x, x) 参考 The Continue reading [Cプリプロセッサ] マクロ引数の文字列化