「構造体を調べたら、typedef structと書いてあったけど何?」
「typedefの使い方を知りたい」
そんな方に向けて、例題を用いながら詳しく解説していきたいと思います!
typedefとは
「typedef」とは、既にあるデータ型に新しい名前をつける時に使うものになります。
(新しい型を作る訳ではありません。)
typedef A B;
A:既存の型名
B:別名(あだ名)
を書きます。
typedefのメリットは、
- 型名をわかりやすい名前に変更できる
- 機械ごとによってデータ型が異なるものに使うと、プログラムを移植する時にtypedef部分のみを変更するだけでよくなる。
などが挙げられます。
だからといって使いすぎると元の型がわかりにくくなり混乱を招くので、ほどほどに使いましょう。
typedefの使用例
それでは実際に使っているものを見ていきましょう。
「商品の番号と名前、価格を構造体で一つにまとめる」プログラムになります。
#include<stdio.h>
#include<string.h>
typedef struct product{
char code[256];
char name[256];
int price;
}Product;
int main(void){
char t[256];
char k[256];
int h;
Product a;
printf("商品番号を入力してください:"); scanf("%s",t);
printf("商品名を入力してください:"); scanf("%s",k);
printf("価格を入力してください:"); scanf("%d",&h);
strcpy(a.code,t);
strcpy(a.name,k);
a.price=h;
printf("商品番号:%s\n",a.code);
printf("商品名:%s\n",a.name);
printf("価格:%d\n",a.price);
return 0;
}
構造体のときと同じく、構造体タグ名が「product」で、「struct product」が型名になります。
この型名「struct product」に同義語「Product」が末尾にtypedefの別名として定義されています。
したがって、main関数内で「Product」と書くだけで変数「a」が定義することができています。
このように、構造体とtypedefは相性が良いのでよく使われます。
まとめ
今回はtypedefとは何かについて解説しました。
typedefは新しく型を定義するのではなく、既存の型に新しく名前をつけるということに注意しましょう。
また、構造体ではtypedef宣言をすることで簡潔な名前を与えるとプログラムが見やすくなります。積極的に使っていきましょう!