next up previous contents
Next: 24.2 キュー Up: 24. キュー・スタック Previous: 24. キュー・スタック

24.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 *newl;

なお、2度に分けて書かずに以下のように一度に書くことも出来る。
    typedef struct List {
        struct List *next;
        void *data;
    } LIST;
この際、LIST は変数名ではなく、新しい型の名前であることに 注意しなければならない。

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



Noriyo Kanayama