c - 是否可以用一个简单的宏在 C 中创建 N 个变量?

标签 c variables macros

我一直在学习VHDL并接触到“forgenerate”这个语句(不确定这个词是否正确),它允许我实例化N个组件,这让我思考:

是否可以用 C 语言做类似的事情?

例如,您可以执行以下操作:

#define _VAR(x)  static int x##_data
#define STRUCT(x) {index##x, data##x, "Name " #x}

上面的语法可能是错误的(我很累,明天必须很早起床),但你明白了。

我也 100% 确定这是不可能的(不是根据我的研究或我学到的知识),但我仍然要问。除了创建数组之外,C 中是否存在类似的语句:

#define NVARIABLES(name, x) static int ##name[x]

如果没有,你认为它有用吗(我认为),你能在下一个 C 版本(C15??:))中看到它吗?感谢您的帮助,晚安

最佳答案

有关此内容以及其他内容的更多信息,请查看 boost 预处理器。

谢谢大家的评论。你对 sleep 不足的我非常有帮助和耐心。

感谢您指出所有信息。

关于c - 是否可以用一个简单的宏在 C 中创建 N 个变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27350870/

相关文章:

javascript - 如果将全局变量定义为“0”,为什么变量“closed”记录为“false”?

php - 如何修复此错误 : "Undefined variable: sum"?

c - 从结构数组中提取特定结构数据成员数组的通用函数

c++ - 从 C++ 生成 C 代码

c - 预取到特定级别的缓存

c - 强制操作系统在后台运行一个没有其他程序的程序

c++ - 在 OpenGL 中制作一个简单的形状移动(形状在数据结构中)

c - 函数如何在 C 中实际返回结构变量?

c - 宏函数的不需要的(或不稳定的)结果

macros - 在内核代码中检测 OpenCL 设备供应商