Макрос C определяет много переменных за один раз - PullRequest
2 голосов
/ 25 января 2012

Мне нужно определить много переменных, и я не хочу делать это одну за другой. Кроме того, я хочу узнать больше о макросах. Допустим, я должен определить x1, x2, x3, x4, x5 следующим образом:

int x1;
int x2;
int x3;
int x4;
int x5;

Могу ли я сделать это с помощью макроса? как это:

#define defint(i) int x(i)//x(i) does not work. I need to somehow combine x and i. How??

и затем создайте цикл for, сколько переменных я хочу определить?

ОБНОВЛЕНИЕ : я буду использовать его для определения многих обработчиков для многих ловушек в некотором коде для Operating system, и, следовательно, я не хочу использовать массив (я хочу мой загрузчик должен быть как можно меньше: P)

ОБНОВЛЕНИЕ2 : кажется, я должен сделать себя более ясным. Так как это код ОС, значит, он также имеет ассемблерный код. поэтому половина кода в C и половина в asm. Я определяю все переменные с помощью макроса в сборке и использую их в C , объявляя их extern :).

1 Ответ

4 голосов
/ 25 января 2012

Использовать вставку токена:

#define DEFINT(i) int x ## i

Также посмотрите, как я не включил конечную точку с запятой, так как вы хотите, чтобы при использовании макроса, чтобы он выгляделкак заявление.

...