typedef

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 },
    };
        |
}
カテゴリー: C パーマリンク