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

来源:学生作业学帮网 编辑:学帮网 时间:2024/07/02 10:49:29

帮忙解释一下宏定义#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"