typedef 的最大作用 是 为变量设置别名。
1
定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如:
char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针,
// 和一个字符变量;
以下则可行:
typedef char* PCHAR;
PCHAR pa, pb;
2 与结构体的连用
typedef struct tagPOINT
{
int x;
int y;
}POINT;
上述定义过程包含两层意思:
1、 定义 结构体 tagPOINT
2 、为 tagPOINT 定义别名 POINT。
3 跨平台时的作用
比如定义一个叫 REAL 的浮点类型,在目标平台一上,让它表示最高精度的类型为:
typedef long double REAL;
在不支持 long double 的平台二上,改为:
typedef double REAL;
在连 double 都不支持的平台三上,改为:
typedef float REAL;
也就是说 可以根据 平台对 REAL 相关联的类型 的支持情况 修改typedef 本身 而不用修改源码。