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

A 回答 (2件)

typedef とは、データ型に別名をつけるためのキーワードです。


昔のCコンパイラはstructを定義すると、使うときに下記のようにする必要がありました。
  struct student stdnt;

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

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

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

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

お礼日時:2009/05/17 12:26

ちなみに、こう書いても良いです。


struct student{
int id;
char name[20];
int kokugo;
int sansu;
int eigo;
};
typedef struct student STUDENT;

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

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

お礼日時:2009/05/17 12:47

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング