【发布时间】:2018-09-26 05:38:04
【问题描述】:
我有一个变量列表char [][20] ls = {"var_1", "var_2", ... , ""}
这是结构struct {char var1[10], ...} my_struct;的字段名称
结构体中的变量都是char[],长度在变化。
该列表本身是 const 并且不应在运行时更改。
我想以某种通用的方式在循环中访问这些变量。而不是调用myfunc(my_struct.var1); myfunc(my_struct.var2);等等,我宁愿有:
for (char * p = ls[0]; *p; p += sizeof(ls[0]))
{
myfunc(my_struct.{some magic that would put var_1 / var_2 here});
}
但我想这是不可能的,因为循环是在运行时执行的,并且变量名需要在编译时可用。
我是正确的还是可以在这里做些什么? (不一定是这样,只是想知道我是否可以将这个例程打包成一个不错的循环)
【问题讨论】:
-
所有字段都具有相同类型吗?
-
它们都是不同长度的
char[]。我可以将所有字段更改为设置长度,如果这可以以某种方式提供帮助(尽管我不明白如何......) -
表是
const还是可以在运行时改变? -
在问题正文中编辑了您的 cmets 的答案
-
我认为你需要在 C 中实现 associative array
标签: c