• 締切済み

typedefの使い方について(C言語の文法)

あるサンプルプログラムを見ていたら、typedefの部分が良く理解できずに悩んでいます。 1.「Test, *PTest」のように、カンマで区切って書いてある場合、どういうことを意味しますか? typedef struct Test {  //構造体メンバ } Test, *PTest; 2.WrDataBuf型の、*PWrDataBufというポインタは、どのような(どこを指す)ポインタなのでしょうか? typedef BYTE WrDataBuf[10]; typedef WrDataBuf *PWrDataBuf; よろしくお願いします。

みんなの回答

  • asuncion
  • ベストアンサー率33% (2127/6290)
回答No.2

typedef struct Test {  //構造体メンバ } Test; typedef struct Test {  //構造体メンバ } *PTest; と書くのを一つにまとめただけなんですけど…。

MaKanazawa
質問者

お礼

asuncionさん、ありがとうございます。 そういう意味だったんですね。

すると、全ての回答が全文表示されます。
  • notnot
  • ベストアンサー率47% (4903/10364)
回答No.1

1. Test x; と書くと、struct Test x; と書いたのと同じ。 PTest y; と書くと、struct Test *y; と書いたのと同じ。 2. PWrDataBuf はポインタではなく、ポインタの型です。 PWrDataBuf z; と書くと、z はBYTE型10個の配列を指すポインタになります。 (*z)[0]、(*z)[1]、・・・・、(*z)[9] まで10個のバイト値。 もちろんポインタなので、 WrDataBuf a; PWrDataBuf z; z = &a; のように何らかのアドレスを代入しないとだめですが。

MaKanazawa
質問者

補足

notnotさん、ありがとうございます。 済みません。1番のほうが、ちょっとよくわからないのですが、「 }Test, *PTest; 」という具合にカンマで区切っているのはどう理解したらよいですか?

すると、全ての回答が全文表示されます。

関連するQ&A