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;

}


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



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

作者を応援しよう!

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

応援したユーザー

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