Это может показаться глупым, но я, кажется, забыл порядок замены макросов. Может кто-нибудь помочь мне разобраться, как правильно поменять значения двух макросов? Учтите следующее:
#include <stdlib.h>
#include <stdio.h>
#define var1 5
#define var2 10
#define _VAL(a) a
#define VAL(a) _VAL(a)
int main(){
printf("var1 = %d, var2 = %d\n", var1, var2);
#define TEMP VAL(var1)
#undef var1
#define var1 VAL(var2)
#undef var2
#define var2 VAL(TEMP)
printf("var1 = %d, var2 = %d\n", var1, var2);
}
Все, что я хочу, - это заменить var1
на 10 и var2
на 5. Есть какие-нибудь идеи, как исправить этот беспорядок?
Я пытаюсь использовать это, чтобы попытаться выяснить что-то для этого другого вопроса:
C Макрос для защиты определений