typedef
既存の型から新しい型を作成するために使用される C および C++ 言語ラベルです。最適な場所は、次の例のような構造体を持つ C プログラミング言語で使用するか、既存のプリミティブ型 (short、long など) から新しい、より抽象的な型を作成するために使用することです。
typedef struct {
int iValue;
int jValue;
} MyValues;
// declare a variable with this struct
MyValues aMyValuesStruct;
typedef が C に導入される前は、上記の構造体を型として使用するには、次のようにする必要がありました。
struct _MyValuesStruct {
int iValue;
int jValue;
};
// declare a variable with this struct
struct _MyValuesStruct aMyValuesStruct;
C++ では、構造体とクラスは、新しい型を作成する同様の構造であるためtypedef
、これらの型の変数にはあまり役立ちません。ただし、組み込みのプリミティブ型を使用して他のより抽象的な型を表す場合は、typedef ステートメントを使用すると、より抽象的な方法で型を指定できます。
をこのように使用typedef
すると、型のラベルを指定するのが非常に簡単になり、プログラマーがソース コードを読んでいるときに、特定の変数が何を表しているかを理解できるようになります。たとえば、 に適合する色値変数があるunsigned short
場合、 を使用しtypedef
て色値の新しい型を作成し、それを一貫して使用すると、変数に色値が含まれていることを認識しやすくなり、他の種類のunsigned short
.
typedef
また、特定の抽象型が使用されているソース内のすべての場所を見つけるのがはるかに簡単になり、基になる型を簡単に変更できるようになります。たとえば、色の値の型がバイトとして始まるため、 のtypedef
ような抽象型を作成するために使用し、後でそれを から に変更するtypedef unsigned char ColorValue;
必要があることがわかった場合、変更を加える場所が 1 か所あり、型の使用はかなり厳密であり、変更が必要な場所はそこだけです。unsigned char
unsigned short