新たに型名をつける
C言語では、元々ある変数型に別の名前をつけることができます。
名前を変えてどうなるのかというと、プログラムの可読性が向上します。
例えば、
int a
と変数を定義すると、これではどんな値が入っている変数なのかがわかりません。
この問題に対し名前のつけ方では、変数名を工夫することでわかりやすくしています。
それ以外にも型名を変えることでも意味を理解しやすくすることができます。
上記の変数が
size_t a
と定義されていたらどうでしょうか。
「size」という単語から、何かしらの大きさであることがわかると思います。また、大きさという考えから、負の数を代入してはいけないとも判断できます。
size_t型は、typedefによって定義されている型名です。定義は以下の通りです。
typedef unsigned int size_t
つまり、size_t型はunsigned int型の名前を変えたものとなります。
このように、型名から有効な範囲や値を類推出来、その変数の意味を理解しやすくなります。
typedefの使い方
typedefはプリプロセッサより後で、typedefで定義した変数型を使用する箇所よりも前に書きます。main()やプロトタイプ宣言の前に書けば間違いはないでしょう。
構文は以下の通りです。
typedef 【既存の型名】 【新規の型名】
前述の例にもあるとおりunsignedやconstなどの修飾子も使うことができます。
また、構造体や共用体などの型もtypedef内で定義できます。