みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

構造体についてです。

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について詳しく知りたいです。

投稿日時 - 2009-05-17 09:49:14

QNo.4965583

困ってます

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

typedef とは、データ型に別名をつけるためのキーワードです。
昔のCコンパイラはstructを定義すると、使うときに下記のようにする必要がありました。
  struct student stdnt;

しかし、typedef 付きの宣言をすると、次のように書くことが出来ます。
  STUDENT stdnt;

とはいえ、最近のC/C++コンパイラでは、typedefを使わなくても次のように書けます。
  student stdnt;

typedefを使わなくても#defineで同様のことが出来ますが、typedefの方は名前空間やクラス宣言、関数の中でもできるので、利用したい場面に限定した別名をつけられます。

投稿日時 - 2009-05-17 10:08:53

お礼

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

投稿日時 - 2009-05-17 12:26:47

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

zwi

ちなみに、こう書いても良いです。
struct student{
int id;
char name[20];
int kokugo;
int sansu;
int eigo;
};
typedef struct student STUDENT;

他にはtypedefを使う場合、
typedef unsigned int uint;
とか書きます。
分かりやすくてコンパクトにまとめる事が出来ますよね。
ただし、やりすぎると他の人が読めないソースになるのでほどほどに。

投稿日時 - 2009-05-17 12:40:57

お礼

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

投稿日時 - 2009-05-17 12:47:50

あなたにオススメの質問