Ansi C 如何动态调用常量

用户2239318

我怎样才能动态地调用这里定义的正确常量:

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

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

这在编译时返回错误:

Undefined identifier MyCONSTANT_

如果我用常量调用函数 direclty 它工作正常:

  myfunction(MyCONSTANT_00);
一世

你不能:

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

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

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

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

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章