#define D %d
int a=2;
printf("D",a);
我想输出a的值(即2),但是结果输出了D,有什么解决办法吗?
printf把“D”当做字符串了,没有转换成“%d”,怎么转换成%d。
回复 楼主 qq626926200 的帖子
楼主这样做有什么实际意义吗?
宏定义本身是在编译时执行的,在这里就是把D替换成%d
D本身就成了一个符号常量
但是“D”被程序解释为字符串,内存中存贮为D和\0两个字节;
字符串常量不是符号常量;
回复 板凳 yaoyong 的帖子
我想把那个输出的格式用宏定义代替,可以搞么
回复 沙发 sint27 的帖子
我也是无意中在书上看到的
如果楼主非要这么做的话,可以这样来:
#define D "%d"
int a=2;
printf(D,a);
回复 4楼 qq626926200 的帖子
六楼的办法可以。