今天看了一道C plus 的习题,比较困惑:
16章
题目是: 定义一个宏,以下面的格式打印名称、值和int类型变量的地址:name: fop; value: 23; address : ff464016.
答案是: #define SHOW(X) printf("name: "#X"; value:%d ; address: %p", X,&X)
我不明白 name: "#X" 这个 是什么意思? 在输出的时候,#X 怎么就能转换成 fop 字符串?
#include<stdio.h>
#define SHOW(X) printf("name: "#X"; value:%d ; address: %p", X,&X)
int main(void)
{
SHOW (23);
return 0;
}
这个程序 在编译的时候 为什么是错的?谢谢!