引用SO线程C Macro Token Concatenation involving a variable - is it possible? ,
在 C 和 C++ 中是否可以在编译时生成变量名?
有点像
int count = 8;
for(i=0; i<count; i++) {
int var_%i% = i*i; // <--- magic here
}
我知道我可以在这种情况下使用数组,但这只是一个示例,只是为了解释我的意思。
最佳答案
如果您希望使用i
的值 生成名称var_%i%
(例如生成变量var_1
, var_2
, ..., var_count
), 那么不,那根本不可能。一方面,这甚至不是编译时操作。 i
的值直到运行时才知道。是的,您 可以说出它将是什么(也许编译器可以在非常简单的情况下进行静态分析),但通常值只是运行时概念。
如果您只是想创建一个名为 var_i
的变量,为什么不直接命名它呢?
如果您解释了这样做要解决的问题,也许会有所帮助。我保证有更好的方法来解决这个问题。
关于c++ - 在C/C++中有什么方法可以在编译时生成变量名吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3646182/