C++语言程序设计

typedef可以为数据类型定义一个符号名，就象引用是一个变量的别名一样。它的主要用途是简化复杂的类型说明，改进程序的可读性。下面是几个例子：
typedef char *String;
Typedef char Name[12];
typedef unsigned int uint;
这些定义的效果是String变成char*的别名，Name变成有12个元素的字符数组的别名，uint变成unsigned int的别名。
String str; // 等价于char *str;
Name name; // 等价于 char name[12];
uint n; // 等价于unsigned int n;
前面复杂的的Compare说明，用typedef简化后，可读性就好多了：
typedef int (*Compare)(const char*, const char*);
int BinSearch (char *item, char *table[], int n, Compare comp)
{
//...
if ((cmp = comp(item, table[mid])) == 0)
return mid;
//...
}
typedef使得Compare作为一个新的类型名，它表示一个有给定原型（有两个常量字符指针参数，返回值为int型）的函数指针类型。