【发布时间】:2016-02-15 15:44:48
【问题描述】:
#include<stdio.h>
#define DEF6 625
#define DEF6 625
#define DEF(n) DEF##n
void main(){
printf("%d\n", DEF(6));
}
此代码有效。 但是
#include<stdio.h>
#define DEF6 625
#define DEF(n) DEF##n
void main(){
int a=6;
printf("%d\n", DEF(a));
}
此代码不起作用。 错误结果是这样的
第 8 行:错误:未声明“DEFa”(在此函数中首次使用)
第 8 行:错误:(每个未声明的标识符只报告一次
第 8 行:错误:对于它出现的每个函数。)
那么如何使用## 将整数类型变量添加到#define?
【问题讨论】:
-
##是连接运算符,而不是加法! -
您要解决的更大的问题是什么?
-
@Caleb:很好的问题,OP:你为什么要尝试实施这样的解决方案?
标签: c c-preprocessor stringification