c ++特殊变量名

Ram*_*lol 0 c++ variables visual-c++

当我创建变量时,我只为它添加一个名称,但是我可以像这样创建变量的名称:

int var+1= 1;
Run Code Online (Sandbox Code Playgroud)

所以基本上应该是:

int var1=1;
Run Code Online (Sandbox Code Playgroud)

我知道我不能用+号来做那件事但是有办法吗?


编辑

int g=1;
string hello+g = "sdljfsdl"; // So hello+g will be hello1
Run Code Online (Sandbox Code Playgroud)

因此,它就像将变量值混合为另一个变量值来获取新的变量名称.

Jac*_*cob 13

您可以使用宏来执行此操作,但实际上您不需要动态变量名称.听起来这种问题可以通过数组来解决:

int vars[5];

vars[0] = 3;
vars[1] = 4; 
// etc.
Run Code Online (Sandbox Code Playgroud)

  • @Ramiz:你为什么不能使用数组? (5认同)

Jon*_*ler 6

这不太可取,但您可以在预处理器中使用令牌粘贴:

#define PASTER(x, y) x ## y
#define EVALUATOR(x, y) PASTER(x, y)

int EVALUATOR(var, 1) = 1;
Run Code Online (Sandbox Code Playgroud)

  • @Johnathan:这就是为什么你要简短的命名.并且摆脱*shift*因为更难输入:`#define w(x,y)x ## y` ...``#define k(x,y)w(x,y)`... `int k(var,1)= 1;`.或者甚至更好,在你从未使用过的某些功能之后命名它,比如realloc ...... (2认同)