typedefは既にある「型」に対して新しい名前をつけ「型」の同義語を作ります。型の用途を分かり易くしたり、型宣言を容易(字数を減らす)にします。
例)用途を分かり易く
ビット演算をする場合には演算対象の変数は「unsigned(符号なし)」であることが条件ですが、ビット演算の対象である事を明示するためにunsigned型として宣言するのではなく、Bits16と言った同義型を作ります。
typedef unsigned char Bits16; //と宣言しておくと、このあとは Bits16 data; //と宣言できます。これは、 unsigned char data; //と宣言することと全く同じです。
例)型宣言を容易に
構造体の宣言では、頭にstructが付くので型名が長くなります。構造変数を多数作る場合には、typedefによりこの手間を省くことが出来ます。
#include <stdio.h> typedef struct { int no; // 背番号 char name[20]; // 氏名 double average; // 打率 } SEISEKI; int main(void) { int i; SEISEKI sensyu1 = { 5, "YAMADA", .302 }; SEISEKI sensyu2[20] = { { 1, "HAYASHI", .281 }, { 2, "SATOH", .275 }, { 3, "OUCHI", .293 }, }; | }