C++構造体の前になぜtypedefがよく使われるのか

917 ワード

C++コードにはいくつかの構造体が定義されています.このようなコードが表示される可能性があります.
typedef struct student
{
	string name;
	int age;
	string gender;
}student;

なぜstructキーワードの後ろに構造体名studentがあり、typedefで名前を再指定する必要があるのでしょうか.
これはtypedefを使用しない場合、すなわち
struct student
{
	string name;
	int age;
	string gender;
};

C言語で使用する場合は、次のように変数を定義する必要があります.
struct student stu1 = {"TheOne", 24, "male"};
したがって、C言語ではtypedefを使用してstruct studentをstudentと定義します.これにより、student構造体を使用するときにstructを省略することができます.すなわち、
student stu1 = {"TheOne", 24, "male"};
しかしC++では、すべてが簡単になり、typedefを使用する必要はなく、student定義変数を直接使用することもできます.次のようになります.
構造体:
struct student
{
	string name;
	int age;
	string gender;
};

変数の定義:
student stu1 = {"TheOne", 24, "male"};
だからC++で見たtypedefはCの書き方を互換させるためだけです.