Ansi C如何动态调用一个CONSTANT

Ansi C how to dinamically call a CONSTANT

如何动态调用此处定义的正确常量:

#define MyCONSTANT_00 "STATICVALUE"
#define MyCONSTANT_01 "STATICVALUE1"
#define MyCONSTANT_02 "STATICVALUE3"

for (Index = 0; Index < record; Index++) 
{
    myfunction(MyCONSTANT_+Index);
}

这个return编译时出错:

Undefined identifier MyCONSTANT_

如果我用常量直接调用函数,它工作正常:

  myfunction(MyCONSTANT_00);

你不能:

#define 和相应的替换由预处理器处理,而 for 循环(和 Index 迭代器)由编译器处理。

预处理器中没有循环机制。

我建议定义一个静态常量数组并在循环中迭代它:

const char* const MyCONSTANT[] = {"STATICVALUE", "STATICVALUE1", "STATICVALUE3" }

for (Index = 0; Index < record; Index++) 
{
    myfunction(MyCONSTANT[Index]);
}