帮忙解释一下宏定义#define print(x) printf(#x) 是怎么替换的

来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/23 20:40:18
帮忙解释一下宏定义#defineprint(x)printf(#x)是怎么替换的帮忙解释一下宏定义#defineprint(x)printf(#x)是怎么替换的帮忙解释一下宏定义#defineprin

帮忙解释一下宏定义#define print(x) printf(#x) 是怎么替换的
帮忙解释一下宏定义#define print(x) printf(#x) 是怎么替换的

帮忙解释一下宏定义#define print(x) printf(#x) 是怎么替换的
不要误人子弟.
#是C语言中宏定义里的一个操作符
英文名叫Stringizing Operator
中文名我也不知道
简单说,它的意思就是使用参数被双引号包住
#@是使参数用单引号包住
##是粘结
看MSDN上鸟语写的也太费劲
我就给你举个例子
就比如你这样定义之后
#define print(x) printf(#x)
在程序中写
print(123);
实际上是相当于
printf("123");
就直接输出123
如果
print("123");
就相当于
printf("\"123\"");
就输出"123"
再补充一下
如果
print("\n");
就相当于
printf("\"\\n");
就输出
"\n"