typedefの役割は、既知のデータ型エイリアスに名前を付けることであり、次の役割を果たします。
1複雑なデータ型名を単純化
する2typedefを使用してプラットフォームに依存しないデータ型を定義する
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; / * Byte * /
typedef unsigned short WORD; / * WORD(unsigned short)* /
typedef unsigned long DWORD; / * DOUBLE WORD(unsigned long)* /
typedef float FLOAT; / *浮動小数点* /
typedef FLOAT * PFLOAT; / *ポインター浮動小数点型* /
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; / *ポインターの定数ポインターボイドタイプ* /