Передача значения переменной в макрос в C

Я пытаюсь передать значение переменной в макрос на 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 .

6
задан Fábio Perez 10 January 2016 в 00:26
поделиться