Ansi C如何普通地调用常量



如何将此处定义的正确常量日常调用为:

#define MyCONSTANT_00 "STATICVALUE"
#define MyCONSTANT_01 "STATICVALUE1"
#define MyCONSTANT_02 "STATICVALUE3"
for (Index = 0; Index < record; Index++) 
{
myfunction(MyCONSTANT_+Index);
}

这在编译时返回一个错误:

Undefined identifier MyCONSTANT_

如果我用常数直接调用函数,它会很好地工作:

myfunction(MyCONSTANT_00);

您不能:

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

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

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

const char* const MyCONSTANT[] = {"STATICVALUE", "STATICVALUE1", "STATICVALUE3" }
for (Index = 0; Index < record; Index++) 
{
myfunction(MyCONSTANT[Index]);
}

最新更新