关于预编译器与编译器执行顺序的疑惑?
疑惑的程序代码如下:程序代码:
#include <stdio.h> #define PATH_3 https://www.baidu.com\ s?wd int main() { printf("%s\n","PATH_3"); return 0; }
首先说一下自己的理解吧:
1、由于程序的执行顺序是预编译器->编译器,预编译器执行时候,会将双引号中的 PATH_3 替换为 https://www.baidu.com\
然后编译器进行编译,所以打印结果应该是"PATH_3",但是打印结果却是"https://www.baidu.com\",这是为什么呢?我的
理解哪里出了差错呢?
2、同样,对于换行符\而言,预编译时候#define PATH_3 https://www.baidu.com\ 应该会将PATH_3以https://www.baidu.com\替换,
所以编译器工作时换行符\已经应该GG了,报错才对,但是结果却能正常工作,这是为什么呢?请大家解答一下。