【问题标题】:C macro define many variables in one goC宏一次定义多个变量
【发布时间】: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


【解决方案1】:

使用令牌粘贴:

#define DEFINT(i) int x ## i

另外,看看我是怎么做到的

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-19
    • 1970-01-01
    • 2015-08-03
    • 1970-01-01
    • 2018-01-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多