【发布时间】:2012-01-25 14:35:21
【问题描述】:
我需要定义很多变量,我不想一个一个地去做。另外,我想了解有关宏的更多信息。所以假设我必须像这样定义 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:看来我得让自己更清楚了。由于它是操作系统代码,所以它也有汇编代码。所以一半代码在 C 中,一半在 asm 中。我通过汇编中的宏定义所有变量,并在 C 中使用它们,声明它们extern :)。
【问题讨论】:
-
C 有专门用于此目的的数组。
int x[5]; -
你不能混合编译时的东西(预处理器
#defines)和运行时的东西(编译器本身的for)。
标签: c macros c-preprocessor