Typedef声明有助于创建平台无关类型,能隐藏复杂和难以理解的语法,使代码更加简单和易读。
用法1、用typedef来定义与平台无关的类型
typedef unsigned long DWORD;
typedef int BOOL;
typedef unsigned char BYTE;
typedef int* PINT; // 用PINT来替代定义 int*
PCHAR pA, pB; // 声明了两个指向民int*型的指针变量
用法2、结构体类型定义
//----------------------------------------
typedef struct tagRECT
{
LONG left;
LONG top;
LONG right;
LONG bottom;
} RECT, *PRECT; // 类型变量,与指针变量
RECT R1; // 定义了一个tagRECT变量
PRECT pR2; // 定义一个指向tagRECT指针变量
//----------------------------------------
typedef struct tagRECT
{
LONG left;
LONG top;
LONG right;
LONG bottom;
} RECT, *PRECT; // 类型变量,与指针变量
RECT R1; // 定义了一个tagRECT变量
PRECT pR2; // 定义一个指向tagRECT指针变量
用途3:定义函数类型指定变量
typedef int (*P_FUN_MAX) (int, int); // 定义了P_FUN_MAX类型的函数
int max( int a, int b )
{
return a > b ? a : b;
}
P_FUN_MAX pFunc; // 固定格式的函数指针变量
pFunc = max;
5 = pFunc( 3 , 5 ) // 与max( 3 , 5 )使用效果相同
// 也可使用如下格式
//pFunc = &max;
//(*pFunc)( 3 , 5 );