#define与typedef最大的区别是两种对象针对的软件不同。
#define在预处理过程中进行源代码中字符替换。不参与
翻译检查语法。
typedef定义的类型别名会被静态系统检查,所以需要在
已有类型定义新类型,否则会在编译时出错。
此外,typedef可以定义较复杂的类型。
而宏定义做不到。
typedef常见用法:
1.常规变量类型定义
例如:typedef unsigned char uchar;
描述:uchar等价于unsigned char;
uchar c相当于unsigned char c
2.数组类型定义
例如: typedef int array[10];
描述: array等价于 int [10];
array a相当于int a[10]
3.指针类型定义
例如: typedef int *po;
描述: po等价于 int *;
po a相当于int *a