マクロから展開されたテキストを取得する方法は?
#include <stdio.h>
#define paste(front, back) front ## back
int main()
{
int number1 = 23;
int number2 = 64;
printf("%d\n", paste(number, 2));
return 0;
}
マクロが次のように展開されるため、出力は64です。
printf("%d\n", number2);
定義された貼り付けマクロを使用して、識別子 number2 を文字列として出力するにはどうすればよいですか。出力を作成する方法を知る必要があります: number2: 64直接「number2」と書かないことで、この解決策は必要ありません:
printf("number2: %d\n", paste(number, 2))
動的なソリューションが必要です。私は次のようにして連結しようとします:
printf("%s: %d\n", paste(number, 2), paste(number, 2));
しかし、貼り付けマクロによって返される number2 は整数の識別子であるため、機能しません。テキスト (文字列) として取得するにはどうすればよいですか?