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