型定義による構造体変数の宣言の簡略化

型定義を使って、構造体変数の宣言を簡略化する方法を説明します。

例えば、以下の構造体testがあったとします。

struct test{
    int a;
    int b;
    char c[5];
};

以下のソースコードにより、構造体testを持った構造体変数の宣言を簡略化できます。struct_testの部分は、任意の名前が付けられます。

typedef struct test struct_test;

上記のように型定義すると、構造体testを持った構造体変数sの宣言は、以下のように行えます。

struct_test s;

簡略化の別の方法

以下の方法でも構造体変数の宣言を簡略化できます。

どれを使ってもstruct_test s;で上記の構造体を持った構造体変数sを宣言できます。

方法1

typedef struct test{
    int a;
    int b;
    char c[5];
} struct_test;

構造体を定義する際に型定義する方法です。

方法2

typedef struct{
    int a;
    int b;
    char c[5];
} struct_test;

testの部分を省略したものです。この場合、testの代わりに、コンパイラが適当な文字列を生成します。

方法3

typedef struct struct_test{
    int a;
    int b;
    char c[5];
} struct_test;

構造体の名前と新たに付ける名前を同じものにすることもできます。