• ベストアンサー

構造体についてです。

typedef struct student{ int id; char name[20]; int kokugo; int sansu; int eigo; }STUDENT; と、 struct student{ int id; char name[20]; int kokugo; int sansu; int eigo; }; の違いはなんでしょう? 私は下記をよく使うのですが・・・。 typedefについて詳しく知りたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • hegemon
  • ベストアンサー率72% (21/29)
回答No.1

typedef とは、データ型に別名をつけるためのキーワードです。 昔のCコンパイラはstructを定義すると、使うときに下記のようにする必要がありました。   struct student stdnt; しかし、typedef 付きの宣言をすると、次のように書くことが出来ます。   STUDENT stdnt; とはいえ、最近のC/C++コンパイラでは、typedefを使わなくても次のように書けます。   student stdnt; typedefを使わなくても#defineで同様のことが出来ますが、typedefの方は名前空間やクラス宣言、関数の中でもできるので、利用したい場面に限定した別名をつけられます。

tomo_ko_n
質問者

お礼

ありがとうございます。もっとtypedefを研究して使ってみたいです。

その他の回答 (1)

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.2

ちなみに、こう書いても良いです。 struct student{ int id; char name[20]; int kokugo; int sansu; int eigo; }; typedef struct student STUDENT; 他にはtypedefを使う場合、 typedef unsigned int uint; とか書きます。 分かりやすくてコンパクトにまとめる事が出来ますよね。 ただし、やりすぎると他の人が読めないソースになるのでほどほどに。

tomo_ko_n
質問者

お礼

やりすぎには気をつけます。 確かにコンパクトにまとめられるような気がします。 ありがとうございました。

関連するQ&A