typedef
C言語の特徴であるデータを区別する型をプログラマが分かりやすい名称に定義し直すことができます。そのために用意されたキーワード(予約語)が typedef
です。
■型定義(Type Definition)
typedef T my_type;
識別子my_type
が型T
を意味することになります。
* キーワード typedef
は,便宜上,記憶域クラス指定子に含まれている。[C99, 6.7.1, 3] この結果,上は「式文」ではなく「宣言」に分類される。
次の場合,BOOLEAN
は int
を意味します。
typedef int BOOLEAN; BOOLEAN true = 1; BOOLEAN false = 0;
true
や false
は int
型です。次の WEEK
は要素数 7
の int
の配列を意味します。
typedef int WEEK[7]; WEEK Jan1st = {4, 5, 6, 7, 8, 9, 10};
オブジェクト Jan1st
は要素数 7
の int
型配列です。
typedef struct list { int n; char str[20]; struct list *next; } LIST; LIST *head;
LIST
は struct list
型を意味し,したがって,ポインタ head
は struct list
型へのポインタです。