为什么预处理与编译不同?

时间:2015-03-25 21:46:53

标签: compiler-construction compilation preprocessor

目前正在使用编译器模块,并且是编译的绝对初学者。有人可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:3)

不一定非。

当然,使用" pre 处理器"这意味着它是处理正确之前的一个步骤,并且对于C预处理器来说肯定是正确的,C预处理器最初是一个单独的程序(并且仍然在某些实现中)。

然而,预处理器执行的操作 - 以文本方式包含其他文件;宏观扩张;条件编译 - 理论上可以在编译期间执行,并且某些语言以这种方式定义。 (许多语言根本就没有实现这些功能,而是由外部实用程序完成。)

答案 1 :(得分:0)

预处理涉及转换未直接链接到要编译的语言的源代码。预处理器的产品也是源代码。

source --->[ preprocessor ]--> modified source -->[ compiler ]--> object -->[ linker ]--> executable

通常,它通过在源代码的文本上提供一些替代规则来工作。