有没有办法在C/C++的编译时生成变量名?

Laz*_*zer 3 c c++

参考涉及变量的SO线程C宏令牌连接 - 是否可能?,

是否可以在C和C++的编译时生成变量名?

就像是

int count = 8;
for(i=0; i<count; i++) {
    int var_%i% = i*i;   // <--- magic here
}
Run Code Online (Sandbox Code Playgroud)

我知道我可以在这种情况下使用数组,但这只是一个例子来解释我的意思.

Tyl*_*nry 8

如果你希望使用的i生成名称var_%i%(例如,创造变量var_1,var_2,..., var_count),则没有,这是不可能的.首先,这甚至不是编译时操作.i直到运行时才知道值.是的,可以告诉它将是什么(也许编译器可以在非常简单的情况下使用静态分析),但通常值只是运行时概念.

如果你只是想创建一个名为的变量var_i,为什么不把它命名为?

如果你通过这样做解释了你试图解决的问题,也许会有所帮助.我保证有更好的方法去做.