文字列化コンパイラ ディレクティブを使用して整数変数を文字列化する方法があるのではないかと考えていました。私は使用してみました:
#define stringize(a) #a
#define h(a) stringize(a)
#define g(a,b) a##b
#define f(a,b) g(a,b)
int main()
{
int num = 1024;
printf("%s=%s\n",stringize(h(f(1,2))), h(f(1,2))); //1. h(f(1,2))=12
printf("%s=%s\n",h(h(f(1,2))), h(f(1,2))); //2. "12"=12
printf("%s=%d\n", h(num),num); //num=1024
return 0;
}
そのため、stringize マクロ (#1) に別のレベルを追加すると、最初に置換が行われ、次にコード (#2) に配置されます。同様に、コンパイル時に変数を値に置き換えることができます。if var = value; と言う意味です。それでは、 some_macro(var) --> それを「値」に文字列化できる方法はありますか?