typedef 的作用是给已知的数据类型命名别名,起到下列作用;
1 复杂的数据类型名称简化
2 用typedef 定义与平台无关的数据类型
3 增强代码可读性
4 避免错误
一个使用typedef的示例程序如下;
// tydemo.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <stdio.h>
#include <string.h>
typedef struct Books
{
char title[50];
char author[50];
char subject[100];
int book_id;
} mybook;
int main(int argc, char* argv[])
{
mybook book;
strcpy( book.title, "AAA");
strcpy( book.author, "CCCCC");
strcpy( book.subject, "FFFFFFFFFFFF");
book.book_id = 12345;
printf( "书标题 : %s\n", book.title);
printf( "书作者 : %s\n", book.author);
printf( "书类目 : %s\n", book.subject);
printf( "书 ID : %d\n", book.book_id);
getchar();
return 0;
}
Windows使用typedef或#define定了很多新的数据类型,在windows.h头文件中:
typedef int INT; /* 整形 */
typedef unsigned int UINT; /* 无符号整形 */
typedef unsigned int *PUINT; /* 无符号整形指针 */
typedef int BOOL; /* 布尔类型 */
typedef unsigned char BYTE; /* 字节 */
typedef unsigned short WORD; /* WORD (无符号短整型) */
typedef unsigned long DWORD; /* DOUBLE WORD (无符号长整形)*/
typedef float FLOAT; /* 浮点型 */
typedef FLOAT *PFLOAT; /* 指向float类型指针 */
typedef BOOL near *PBOOL; /* 指向布尔类型指针 */
typedef BOOL far *LPBOOL;
typedef BYTE near *PBYTE; /* 指向字节类型指针 */
typedef BYTE far *LPBYTE;
typedef int near *PINT; /* 整形指针 */
typedef int far *LPINT;
typedef WORD near *PWORD; /* 指向WORD类型的指针 */
typedef WORD far *LPWORD;
typedef long far *LPLONG; /* 指向长整形的指针 */
typedef DWORD near *PDWORD; /* 指向DWORD类型的指针 */
typedef DWORD far *LPDWORD;
typedef void far *LPVOID; /* 指向void类型的指针 */
typedef CONST void far *LPCVOID; /* 指向void类型的常指针 */