- ベストアンサー
構造体についてです。
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について詳しく知りたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
typedef とは、データ型に別名をつけるためのキーワードです。 昔のCコンパイラはstructを定義すると、使うときに下記のようにする必要がありました。 struct student stdnt; しかし、typedef 付きの宣言をすると、次のように書くことが出来ます。 STUDENT stdnt; とはいえ、最近のC/C++コンパイラでは、typedefを使わなくても次のように書けます。 student stdnt; typedefを使わなくても#defineで同様のことが出来ますが、typedefの方は名前空間やクラス宣言、関数の中でもできるので、利用したい場面に限定した別名をつけられます。
その他の回答 (1)
- zwi
- ベストアンサー率56% (730/1282)
ちなみに、こう書いても良いです。 struct student{ int id; char name[20]; int kokugo; int sansu; int eigo; }; typedef struct student STUDENT; 他にはtypedefを使う場合、 typedef unsigned int uint; とか書きます。 分かりやすくてコンパクトにまとめる事が出来ますよね。 ただし、やりすぎると他の人が読めないソースになるのでほどほどに。
お礼
やりすぎには気をつけます。 確かにコンパクトにまとめられるような気がします。 ありがとうございました。
お礼
ありがとうございます。もっとtypedefを研究して使ってみたいです。