c - 变量名中间的宏参数?

标签 c c-preprocessor

宏:

#define TESTMACRO(name, exc) void* jt_name[exc];int jtix_name = 0;

例子:

TESTMACRO(testname, 2)

翻译成

void* jt_name[2];int jtix_name = 0;

我怎样才能让它说 jt_testname 呢?

我尝试在名称前使用井号标签 (#),但这并没有达到我想要的效果。不能使用空格,因为它是中间变量名。

最佳答案

尝试连接运算符 (##):

#define TESTMACRO(name, exc) void* jt_ ## name[exc];int jtix_ ## name = 0;

关于c - 变量名中间的宏参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38217734/

相关文章:

c++ - 在 SWIG 中获取 SFML 跨平台类型定义

c++ - 是否可以根据宏或变量有条件地编译/运行代码?

c - 程序添加数字不显示任何输出

C: fgets 跳过用户输入

c - C 预处理器如何处理循环依赖?

c++ - 如何在 Windows XP 下从 Dev-c++ 中获取预处理代码?

c - 与库实现一起获得预处理的 C 代码

c - MPI中3D过程分解中交换2D光晕的子数组数据类型的数量

c++ - C/C++ 主函数的参数在哪里?

这会导致段错误消息吗?