typedef:用来为复杂的声明定义简单的别名 且现有类型创建一个新的名字;
typedef int INT;
typedef char * pstr;
#define:对一些常见的变量,字符串等,进行宏定义.
#define flag 1
#define是在编译预处理时进行简单的替换,不作语法检查,不管是否正确照样带入,只有在编译已被展开的源程序时才会发现可能的错误并报错,且没有作用域 后面不要加";"
typedef 是在编译时处理的。它在自己的作用域内给一个已经存在的类型定义一个别名,后面要加";"。