C ++中的变量名称

时间:2014-08-19 13:23:35

标签: c# c++ c arrays matlab

对于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#中,这可以通过Reflection实现。

2 个答案:

答案 0 :(得分:5)

C ++和C都是编译语言。变量名在运行时不存在。这使你的想法完全不可能。

编译C#,但反射的限制有限。 类型名称可用,但我不认为变量名称。基本上同样的原因让你运气不好。

MATLAB被解释,因此编译时和运行时之间没有区别,因此它具有可用的变量名。价格是MATLAB很慢。

答案 1 :(得分:2)

int sampleFunction (int selector)
{
    int var_[] = {1, 2};

    return var_[selector];
}

其中1和2分别是var_1var_2的值。