我们在阅读一些商业性的代码时经常会碰到广泛使用的typedef关键字。
其主要的作用和应用场合如下:
1、创建同义词,这在windows api中广泛使用,比如:typedef int size; 则size本身就是一个int的替换,其主要的意义就是便于记忆和代码的清晰。在比如:typedef char * pstr; 和 typedef const char * cpstr;
同样可以定义数组,比如:
typedef char Line[81];
Line text, secondline;
getline(text);
定义结构体,比如:
typedef struct node
{
char name[20];
struct node *link;
}stu;
stu就可以替代struct node
类似于#define的文本替换,但这些功能是在编译时被解释。我的感觉就是用用户定义的关键字来替换整个已有数据类型或者数据类型的组合。
2、定义函数指针类型,比如:
typedef int (*PF) (const char *, const char *);
PF就是函数指针的类型。
3、便于进行跨平台的代码开发和维护。因为只需要在定义处进行简单的替换就可以,而不需要对所有代码进行修改。