#include <stdio.h>
#define A 123
#define B "ABC"
int main(void)
{
printf("%d\n",A); // 输出 123
printf("%s\n","A"); // 输出 A,为什么不是123,预处理在编译程序前不是应该把语句替换成 printf("%s\n","123"); 吗
printf("A\n"); // 输出 A,为什么不是123,预处理在编译程序前不是应该把语句替换成 printf("123\n"); 吗
printf("%s\n",B); // 输出 ABC
printf("B\n"); // 输出 B,为什么编译不报错,预处理在编译程序前不是应该把语句替换成 printf(""ABC""\n"); 吗
printf("%s\n","B"); // 输出 B,为什么编译不报错,预处理在编译程序前不是应该把语句替换成 printf("%s\n",""ABC""); 吗
printf("%s\n",""ABC""");
return 0;
}
为什么编译程序前,预处理器有时替换了符号常量,有时又没有替换符号常量?
最近才开始学习C语言(Windows环境),很多地方都还不太明白,请问什么是宏,编译参数又该怎么弄?
本回答被网友采纳