【发布时间】:2014-08-19 13:23:34
【问题描述】:
对于 C++,请考虑以下伪代码:
int sampleFunction (int selector)
{
int var_1 = ............ ;
int var_2 = ............ ;
return var_[selector];
}
最后一行相当于代码:
if (selector == 1)
{
return var_1;
}
else if (selector == 2)
{
return var_2;
}
但我需要在运行时使用另一个变量 (selector) 评估变量名称。
如何做到这一点?还有,C语言呢?
我通常使用 MATLAB 命令eval 来执行此操作。
此外,在 C# 中,这可以通过反射来实现。
【问题讨论】:
-
为什么不首先将所有内容存储在数组中?也许您可以详细说明您最终想要实现的目标。这听起来像是一个 X-Y 问题。
-
@MatthiasB:X-Y 问题的根源几乎总是在现实世界中存在实际问题。 5 个标签暗示了一个理论问题,而不是 X-Y。
-
所以问题是具体的,而且只是关于有类似
var_XX的选项,其中XX是一个运行时变量? -
那么不,这在纯 C++ 中是不可能的。
-
@mafso: 或
std::map.