構造体宣言と構造体名の変更を同時に行ってみます

アレサ「そして


今のプログラム


#include <stdio.h>


struct Cube{

int no;

float tate;

float yoko;

float takasa;

};


int main(void){


typedef struct Cube Cube;

/*ここで構造体名をstruct CubeからCubeに変更しました*/

Cube cube1;

/*ここで cube1の構造体変数宣言を行うことによりcube1を

構造体変数としました。*/

cube1.no=1;

cube1.tate=4.0;

cube1.yoko=5.0;

cube1.takasa=6.0;

/*構造体変数 cube1のメンバ変数に数値データを格納して初期化していきます。*/

printf ("%d\n",cube1.no);

printf ("%f\n",cube1.tate);

printf ("%f\n",cube1.yoko);

printf ("%f\n",cube1.takasa);


return 0;

}



構造体名をstruct Cubeから Cubeに変更する際


命令文typedef struct Cube Cube;


を使用しましたが


冒頭の構造体宣言にtypedefを用い


typedef struct Cube{


int no;

float tate;

float yoko;

float takasa;

} Cube;

と記述し


構造体名をstruct Cubeから Cubeに変換する方法もあります。


これは


構造体名をstruct Cubeから Cubeに変換する命令文


typedef struct Cube Cube;


内の


struct Cubeが


struct Cube{


int no;

float tate;

float yoko;

float takasa;

}

におきかわっているというわけです。


この新しく書き換えられた構造体宣言は


プログラム内では次のように冒頭で記述されます。」


#include <stdio.h>


typedef struct Cube

{

int no;

float tate;

float yoko;

float takasa;

} Cube;

/*ここの部分ですね。構造体名を struct Cube からCubeに変更しました*/


int main(void){


Cube cube1;


cube1.no=1;

cube1.tate=4.0;

cube1.yoko=5.0;

cube1.takasa=6.0;


printf ("%d\n",cube1.no);

printf ("%f\n",cube1.tate);

printf ("%f\n",cube1.yoko);

printf ("%f\n",cube1.takasa);


return 0;

}

コンパイル結果

1

4.000000

5.000000

6.000000



ソーラー「struct Cubeの構造体宣言と


構造体名をstruct Cubeから Cubeに変換する方法が同時に


記述できるんだ。


少しだけ 命令文がみじかくなったかな。


typedefの仕組みを知らない人が


typedef struct Cube

{

int no;

float tate;

float yoko;

float takasa;

} Cube;


を見たらなんのことかわからないかな?


なぜかCubeが最後についてるっ?ておもうかな?」

  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます