解决c语言题

来源:百度知道 编辑:UC知道 时间:2024/05/07 19:53:56
谢谢,急!辛苦了!已知宏定义如下:#define PR printf #define NL "\n" #defineD "%d" #defineD1 DNL 若程序中的语句是PR(D1,a);经预处理后展开为什么?A.printf(%d\n,a); B.printf("%d""\n",a);C.printf("%d\n",a);D.原语句错误

D.原语句错误
DNL会被作为一个变量使用,所以编译时会提示DNL未定义。
改为#define D1 D NL,就可以了,这时候编译后应为B.printf("%d""\n",a);

貌似是
展开应该 printf("%d""\n",a)