一、define的用法
#define为一宏定义语句,通常用它来定义常量(包括无参量与带参量),它本身并不在编译过程中进行,#define 是预处理指令,在编译处理是进行简单替换,不作确性检查,不管含义是否正确照样带入,只有在编译已被展开的源程序时才会发现可能的错误并报错。
例如: #define PI 3.1415926
程序: area=PI*r*r; 替换3.1415926*r*r
二、typedef的用法
typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间。typedef是在编译时处理的。它在自己的作用域内给一个已存在的类型一个别名,而#define只是简单地替换。
例如:typedef unsigned int uint; 这样就为unsigned int 型引入新助记符uint,以后使用uint直接代表unsigned int 型。
综上,typedef只是为了增加可读性而为标识符另起的新名称(仅仅只是个别名),而#define原本在C中是为了定义常量。