Мне было интересно, может ли быть способ для преобразования целочисленной переменной в строку с помощью директивы компилятора stringizing.
Я пытался использовать:
#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), аналогичным образом можно будет заменить переменные во время компиляции значениями.
Я хочу сказать, если var = value; тогда есть ли способ, которым
some_macro (var) -> может преобразовать его в «значение»?