PDA

Просмотр полной версии : [Вопрос] Препроцессор



Пельмень
09.01.2017, 17:17
Привет, в общем у меня довольно не обычный вопрос

Допустим я имею это


#define t(%1)(%0) t_%1(%0)
#define t_0(%0)
#define t_1(%0) %0
#define t_2(%0) %0%0

Использую я например это вот так


t(2)(print("priv");)

И получаю вот это в ответ


priv
priv

Но если я буду использовать это вот так


#define b 2
t(b)(print("priv");)

То получаю (по 36*лу) Undefined symbol t_b

Как мне объяснить компилятору, что мой дефайн b это не b а цифра 2?

qwezert
09.01.2017, 17:21
А ты #define b 2 обьявил раньше чем #define t_2(%0) %0%0 ?

VVWVV
09.01.2017, 18:46
Вы вряд ли что-то сможете сделать. Даже у Y_Less'а не получилось...