例えば、 符合なし整数に毎回 unsigned int と書くのは、ちょっと面倒です。そういう場合は、 unsigned int という型に対して、uintとかいう型名をつけてみましょう。
typedef unsigned int uint; /* typedef してみる */ uint x = 0; /* uint = unsigned int な変数 x の定義 */ちなみに、宣言した型名を外でも使う場合は、header file の方に書いておくべきでしょう(次回以降)。
個人的には、int * とかいう型名に名前をつけるのも悪くないです。 例えば、a, b という int *型の変数を宣言する場合、C では、
int *a, *b;と書く必要があります。正直、ちょっと嫌な感じが僕はします。しょうがないから、普段は
int* a; int* b;と書いています。でも、少し悲しい。そういうときは、一度 typedef しておくと、すっきりです。
typedef int * int_tp; /* int_tp という型名を宣言 */ int_tp a, b; /* チョットすっきり? */_tp というのをつけるのは、僕の個人的な習慣で、一般のデータ型には_tをつけて、 ポインタの場合には、_tpをつけることにしています。
それからもうひとつ。typedef の時には、
typedef 対応する型 型名; typedef unsigned int uint;と書くのが代表的な書き方です。でも、実は、もっと色々な書き方があります。 実際には、「変数とその型の宣言」を記述するのと同じフォーマットで「変数名」の代りに「型名」を 書くだけのことです。 例えば、unsigned int な変数 x と、 そのpointer である y を宣言するときは、
unsigned int x, *y;と書きますが、その代りに
typedef unsigned int uint, *uint_tp;と書けばいいわけです。4x4 の2次元配列の typedef をするときも
typedef int myarray_t[4][4];でOKです。 型の書き方を難しく感じる時は、typedef をつかって型名を割り付けておくと、 あとは簡単に記述することができます。 (サンプルコードdata_Cp.c)。
2001.11.16/ Tomio KAMADA: kamada@cs.kobe-u.ac.jp