如何将此处定义的正确常量日常调用为:
#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
循环(和Index
irterator(由编译器处理。
预处理器中没有循环机制。
我建议定义一个静态常量数组,并在循环中迭代:
const char* const MyCONSTANT[] = {"STATICVALUE", "STATICVALUE1", "STATICVALUE3" }
for (Index = 0; Index < record; Index++)
{
myfunction(MyCONSTANT[Index]);
}