首页 > 解决方案 > 使用 local int 来引用定义为宏的常量

问题描述

我是自学成才的 C 新手,我正在努力完成以下任务:

在我的 main() 循环中,我增加了一个 int "i"。我有一个单独的头文件,我在其中定义了几个宏,我想用“i”在我的主文件中调用它们。

例如,在我单独的头文件中,我有以下常量:

#define _1 0x06

如果我想_1使用iwhen调用i = 1,如何转换i_1以便以后使用;在这种情况下,我想将我的头文件中的值分配给_1字节0x06数组中的特定索引,例如:

Array[3] = _1

每次我的循环迭代时,我都希望为数组索引分配一个不同的值,例如:

Array[3] = _i

我希望我的问题是有道理的。请原谅我对技术编程语言不熟悉。

标签: c

解决方案


这不能用预处理器完成,迭代器的值在编译时是未知的,但你可以使用查找表:

int lookup[] = {0x00, 0x06, 0xab, ...};

然后,使用迭代器作为偏移量循环:

for (int i = 1; i < n; i++) x = lookup[i];


推荐阅读