C语言中 “编译时处理” 与 “预处理” 两个概念的区别?

他们两者的区别是什么?

所谓预处理,就是指由预处理器处理的东东。编译处理是由编译器处理的东西,现代编译器通常和预处理器集成在一起,所以大部分时间我们根本感觉不到预处理器的存在.由#define 所定义的都是由预处理器处理的,例如:
#define u16 unsigned short
typedef unsigned short u16;这两个语句同样是定义u16为无符号短整型,但是第一条语句是由预处理器来执行替换操作的, 凡是遇到u16的地方都用unsigned short来替换(字符串里的u16不会被替换)。第二条语句就是由编译器来完成的。通常预处理器不会检查错误
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-25
浩强哥的教材中说的很清楚,可以参考。简单来说,C语言程序在编译前,其实是有一个预备工作的,这个就是“预处理”,可以理解为:人类所编写的程序,需要转化为机器能够编译的合理输入文件。机器编译,就是按照语法来处理语句,一些语句或者逻辑是在编译时才有意义,才进行分析,这就是“编译时处理”。
第2个回答  2012-12-25
cccccc
相似回答