编译器和预处理器之间的定义区别是什么?

时间:2016-02-03 14:07:35

标签: compilation

我得到了以下问题,其中正确的答案是B.我不明白为什么A不正确,因为编译器正在对代码进行优化,而我没有找到有关正在进行的前处理程序的任何信息这一点。

enter image description here

1 个答案:

答案 0 :(得分:1)

因为正确答案是B;)

编译器不必进行代码改进以生成正确的机器代码。它的主要任务是通过对源代码执行语法和语义分析,从源代码生成机器代码,如果代码正常则生成机器代码。

编译器可以生成正确的机器代码而无需优化

例如,在gcc中,您可以使用选项-O

选择优化级别