C宏一次定义了许多变量

时间:2012-01-25 14:35:21

标签: c macros c-preprocessor

我需要定义很多变量,我不想一个接一个地做。另外,我想了解更多关于宏的知识。所以我要说我必须像这样定义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)

UPDATE2 :似乎我必须让自己更清楚。因为它是os代码,所以它也有汇编代码。因此,一半代码在 C 中,一半在asm中。我在汇编中通过宏定义所有变量,并在 C 中使用它们来声明它们extern :)。

1 个答案:

答案 0 :(得分:4)

使用令牌粘贴:

#define DEFINT(i) int x ## i

另外,看看我如何包含尾部分号,因为你在使用宏时想要它,使它看起来像一个语句。