typedefを使い 変数の型名、構造体名などを新しい名前に変更することができます


今まで整数値データを変数に格納するには


次のプログラムのように整数の型intをつかっていました。



#include <stdio.h>


int main(void){

int a=5;

printf("%d\n",a);

return 0;

}

コンパイル結果

5



このプログラムで


typedef 今の型名 新しい型名


をおこなうことにより


今の型名intを


        🍎おしゃれな新しい型名cute💖に


かえることができます


次のプログラムでtypedef の使用例をみていきます。



#include <stdio.h>


int main(void){


typedef int cute;


cute a=5;


printf("%d\n",a);

return 0;

}

コンパイル結果

5


アレサ「ソーラーさん、整数値データを格納する変数の型名がintから


おしゃれなcuteにかわっています。」


ソーラー「くぁあわいいね


そうだ ついでに


実数値データを格納する変数の型名もfloatからcasualにかえてみよっと


次の実数値データを格納する変数の型floatを用いたプログラムを


#include <stdio.h>


int main(void){

float b=5.0;

printf("%f\n",b);

return 0;

}

コンパイル結果

5.000000


typedefをもちいて


変数名をfloatからcasualに変更してみます


するとプログラムはこのように

👇

#include <stdio.h>


int main(void){


typedef float casual;

casual b=5.0;


printf("%f\n",b);

return 0;

}


コンパイル結果

5.000000


書き換えることができるんだね。」


アレサ 「


新しい整数値データを格納する変数の型 cuteと

新しい実数値データを格納する変数の型 casualの完成です。」


ソーラー「いいね


もう整数値データを格納する変数の型はintでなくcuteにしてしまおうか?」


アレサ


「変数の型名をintからcuteに変えた


このプログラムを他人にみせたら


また~くわからない・・かも・・・」


ソーラー「それもそうか・・・


じゃあ


整数値データを格納する変数の型intはwolfにしよう🌞


#include <stdio.h>


int main(void){


typedef int wolf;


wolf a=5;


printf("%d\n",a);

return 0;

}


コンパイル結果

5


アレサ「


wolf a=5;


もう、intの代わりだとは気付かれそうもありません」


ソーラー「ちょっと変換しすぎたかな?」


アレサ「


同様に


typedef 今の構造体名 新しい構造体名


をおこなうことにより


今の構造体名を


おしゃれな新しい構造体名にかえることができますの


ここでは、さきのエピソードのプログラムでつかわれた


struct Cube をCubeにかえてみます。


typedef 今の構造体名 新しい構造体名



今の構造体名 の部分がstruct Cube


新しい構造体名 の部分がCubeとなります。


それでは


次のプログラムをかきかえてみましょう。


#include <stdio.h>


struct Cube{


int no;

float tate;

float yoko;

float takasa;

};


int main(void){


struct Cube cube1;/*ここで構造体変数宣言を行うことにより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

👆


このプログラムはtypedefをつかい


次のようにかきかえられます。


#include <stdio.h>


struct Cube{


int no;

float tate;

float yoko;

float takasa;

};


int main(void){


typedef struct Cube Cube;



Cube cube1;/*ここで構造体名 struct Cubeが Cubeと変更されています*/

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



アレサ

「typedef struct Cube Cube;


を行うことにより


構造体名が


struct Cube から


Cubeに変わっているのがわかります。」


ソーラー「

struct Cube から


appleに構造体名を変更するプログラムを組んでみると


#include <stdio.h>


struct Cube{


int no;

float tate;

float yoko;

float takasa;

};


int main(void){


typedef struct Cube apple;/*ここで構造体名をappleに変更しました*/


apple cube1;/*構造体名 struct Cubeが appleと変更されています*/

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


👆

このようになりますね。」



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

作者を応援しよう!

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

応援したユーザー

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

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る