c++ - 在C/C++中有什么方法可以在编译时生成变量名吗?

标签 c++ c

引用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/

相关文章:

c - undefined reference 'WinMain@16' C 错误

c++ - 包括 DShow.h 会破坏 BDS2006 上的 VCL AnsiString::sprintf()

c++ - 未找到 opencv .dll 文件

c++ - 为什么BFS对于同一个图中不同的节点位置给出不同的运行时间?

c++ - 函数参数声明中的静态数组索引

c - 为什么静态指针的初始化无效?

python - python 是否足够聪明,可以用常量结果替换函数调用?

C memcpy unsigned char 到 1 元素 unsigned char 数组用于校验和计算

C++ 混合指向不同 char 类型的指针

c++ - Qt 5.3 无法使 QCompass (QSensor) 在 Windows 8.1 上运行