typedefは既にある「型」に対して新しい名前をつけ「型」の同義語を作ります。型の用途を分かり易くしたり、型宣言を容易(字数を減らす)にします。
例)用途を分かり易く
ビット演算をする場合には演算対象の変数は「unsigned(符号なし)」であることが条件ですが、ビット演算の対象である事を明示するためにunsigned型として宣言するのではなく、Bits16と言った同義型を作ります。
1 2 3 | typedef unsigned char Bits16; //と宣言しておくと、このあとは Bits16 data; //と宣言できます。これは、 unsigned char data; //と宣言することと全く同じです。 |
例)型宣言を容易に
構造体の宣言では、頭にstructが付くので型名が長くなります。構造変数を多数作る場合には、typedefによりこの手間を省くことが出来ます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | #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 }, }; | } |