電子工作入門プログラミング入門-基礎1第42回で列挙型、第44回で構造体を習得しましたが、これらをもう少し使いやすくする手法を習得します。typedefのコンセプト列挙型、構造体について忘れてしまっていたら、列挙型は第42回、構造体は第44回の記事を見返してみてください。この列挙型と構造体ですが、列挙型と構造体の変数を宣言するとき、以下のようにしていましたよね。変数名;これはこれで特に問題ないと思いますが、もうちょっと簡単に変数宣言できればスケッチを書くのが楽になりそうです。キッチンタイマーの残り時間を表すために以下のように列挙型を宣言しました。mousugu};この列挙型の変数を宣言する場合、例えば以下のように宣言します。nokori_jikan;これはタグ名が「nokori」で宣言した列挙型として、nokori_jikanという変数を宣言してください、ということですが、もうちょっと簡単に「nokoriという型の変数を宣言してください」と書けた方がスケッチが楽になりそうです。nokori_jikan;というように変数宣言できれば、あたかもuint8_t型と同じようにnokori型の変数を宣言したように見えるわけです。キッチンタイマーのスケッチは、メロディーデータを構造体にしました。nagasa;}音階データと長さデータを組にしました。この構造体の変数を宣言する場合は、以下のように書きます。alarm_melody;先ほどの列挙型と同様に、構造体宣言もこれで特に問題ないと思いますが、以下のように「oto型」という変数型があればもう少しスケッチが楽にかけますよね。alarm_melody;「typedef」という仕組みは、このように自分で作った列挙型や構造体を、あたかもuint8_t型などと同じような変数型として使えるようにしてしまおう、というコンセプトなんです。typedefの使い方typedefは新しく型(type)を定義(define)するものです。書き方は以下のようになります。具体的な例を確認した方が早いので、先ほどの「oto」という構造体を使ってtypdefの使い方を確認します。以下の構造体を「oto型」という新しい変数型として宣言する場合を考えます。構造体は以下のように宣言しました。nagasa;}これを「oto」型として宣言したい場合は、先ほどの書き方のように「typedef」と書き、続いて上の構造体を書いて、最後に新しい変数型の名前を書きます。この例は、先ほどの書き方の色に合わせて書いていて、さらにそれぞれの項目の行を分けています。この宣言だとエラーになってしまうんです。その理由ですが、「oto」という名前が2ヶ所に書かれてしまっているためです。一度使った名前は使うことができません。」(アンダーバー/アンダースコア)をつける慣習になっています。」のすぐ後に書くことが多いようです。typedefで新しい変数型を定義する場合、タグ名は必要ないので以下のように省略することも多いです。いろいろなスケッチを見ていると省略するケースが多い印象があります。このようにtypedefを使って宣言した構造体は、あたかも「oto型」という変数型のように以下のように使用することができます。alarm_melody;構造体や列挙型、enumはそれほど頻繁に使うことはないと思いますが、他の人が書いたスケッチでは結構使用されていますので、自分で使わなくてもこのようなスケッチを読めるようにしておきましょう。