define是宏,它只是字符替换,而typedef定义了之后则是代了一种变量类型
1)
#define INT int
INT a,b;//a与b都是int型
typedef int INT;//INT 定义为int型,INT现在为一种变量类型
INT a,b;//a与b 都是int型
#define PINT int *
PINT a,b;//这时a与b就不都是int型指针了,define只是替换,则这一句可写成int *a,b;只有a一个是指针
typedef int * SINT
SINT a,b;//这时a与b都是int型指针,因为typedef不是字符替换,它定义为int型指针,相当于int *a,int *b;
2)
define不是语句,句尾不能加分号,而typedef要加