next up previous contents
Next: 2. ストリーム入出力 Up: 23. ファイル入出力 Previous: 23. ファイル入出力

1. 新しい型の定義

以前構造体を学習した際に、構造体を用いて新しい型を定義できるという事を 学んだ。つまり、

    struct List {
        struct List *next;
        void *data;
    };

という構造体の定義は、新しい struct List型という型を作っている事に なる訳であるのだが、表現方法としては int などに対して、 struct List と書くのは型という感じがしないかも知れない。 また、キーボードをタイプする字数も多いだろう。そこで、この struct List を省略して書く方法が用意されている。

このための新しい宣言が typedef で、上の構造体の定義の後に、

    typedef struct List LIST;
と書くことで、新しい型名 LIST が定義される。以降は、 struct List の代わりに LIST が使えるようになる。

    LIST *new;

なお、2度に分けて書かずに以下のように一度に書くことも出来る。

    typedef struct List {
        struct List *next;
        void *data;
    } LIST;
この際、LIST は変数名ではなく、新しい型の名前であることに 注意しなければならない。

当然、別のモジュールで使うためには、これらの定義をヘッダーファイルに 含めて、#include命令によりそのモジュール中に取り込めば良い。



Noriyo Kanayama 平成14年11月26日