構造体について

なんていうかオブジェクト指向を知ってしまうと、
構造体とかそういうのがまどろっこしくて仕方ないんですが、
まぁそうはいっても使えない分野もあるわけで。

基本的な構造体

struct [sNAME] {
  [MEMBER]...
} [oNAME];

もちろんこうも書ける
struct [sNAME] {
  [MEMBER]...
};

struct [sNAME] [oNAME];


sNAME : 構造体そのものの名前
oNAME : 構造体型の変数の名前

クラスとオブジェクトの定義みたいな。
プログラム内で一個しか構造体を使わないときだけ、下の方の
記述方法は有効です。まぁ、当たり前か。

typedefを使った構造体宣言

こっちの方がオブジェクト指向に近いですね。
新しい型を宣言するために使うのがtypedefです。
すなわちstruct [sNAME]という新しい型を作るということ。

typedef struct [sNAME] {
  [MEMBER]...
} [cNAME];

[cNAME] [oNAME];

新しい型「struct [sNAME]」を[cNAME]という名前で定義する、
というのがこの書き方。
だから[cNAME] fooで宣言ができるんですね。


うーんやっぱり全部オブジェクト指向でいいでしょう。
メモリの取り回し?ああ、まぁ…。


C言語入門 11.構造体
http://c-production.com/contents/c/sec11.html


構造体
http://www9.plala.or.jp/sgwr-t/c/sec15.html