typedef和#define:剪不断,理还乱。
问个很菜的问题:预编译是什么时候,编译又是什么时候进行的?——我知道预编译是在编译之前的预处理动作,仅此而已。可是一个生成了exe的文件就都不会存在这两者了吧?那么对编译器来说,何必还要分什么预编译和编译的过程呢?它们有什么区别吗(指的是对我们用户而言,而不是它们的机制)?反正不都是在要运行前都得去做的事吗?
比如说typedef和define吧,typedef说是在编译时处理的,而define在预编译时处理。——这有什么区别呢?反正结果都一样,比如这样两个例子不都是一样的吗?
例1.
typedef int COUNT;
COUNT i,j;
例2.
#define COUNT int
COUNT i,j;