行番号に基づいて名前を持つ関数を作成するCマクロを作成したいと思います。私は次のようなことができると思いました(実際の関数は中括弧内にステートメントがあります):
#define UNIQUE static void Unique_##__LINE__(void) {}
私は次のようなものに拡大することを望みました:
static void Unique_23(void) {}
それはうまくいきません。トークン連結では、位置決めマクロは文字通り処理され、最終的に次のように展開されます。
static void Unique___LINE__(void) {}
これは可能ですか?
(はい、これがどれほど役に立たないように見えても、私がこれを実行したい本当の理由があります)。