Я пытаюсь передать значение переменной в макрос на C, но я не знаю, возможно ли это. Пример:
#include <stdio.h>
#define CONCVAR(_n) x ## _n
int main () {
int x0, x1, x2, x3, x4, x5, x6, x7, x8, x9;
int i;
for (i = 0; i <= 9; i++) CONCVAR(i) = i*5;
return 0;
}
Здесь я пытаюсь использовать макрос для присвоения значения всем переменным x_, используя токены ##
. Я знаю, что могу легко добиться этого с помощью массивов, но это только для обучающих целей.
CONCVAR (i)
заменяется на xi
, а не на x1
(если i == 1). Я знаю, как работают определения и макросы, все дело в подстановке, но я хочу знать, можно ли передать макросу значение i вместо буквы i
.