typedef: 名前の定義
長い型名にニックネームをつける。構造体と相性抜群。
typedef
既存の型に新しい名前(別名)をつけるキーワード。
エイリアス
別名のこと。
詳細解説
型に名前をつける
typedef は、既存の型に新しい名前(エイリアス)をつける機能です。
「unsigned long long int」のような長ったらしい型に「uint64
」のような短い名前をつけたり、構造体にシンプルな名前をつけたりして、コードの可読性を上げるために使います。
// 型に別名をつけるtypedef unsigned int uint;
uint a = 100; // unsigned int a = 100; と同じ構造体での利用
C言語では、構造体を使うたびに <code>struct Person p;</code> のように <code>struct</code> キーワードを書く必要があります。これが面倒なので、ほとんどの場合は <code>typedef</code> とセットで定義します。
// 構造体とセットで使う (定番パターン)typedef struct { int x; int y;} Point;
// struct Point と書かなくて済む!Point p1 = {10, 20};実践テクニック
抽象化による移植性向上
環境によってサイズが変わる整数などを <code>Int32</code> のように定義し直すことで、コードを別の環境に持っていったときに修正箇所を減らせます。<code>size_t</code> や <code>uint8_t</code> も標準ライブラリで定義された typedef です。
演習課題
課題1: リファクタリング
前回の構造体のコードを、typedef を使って struct キーワードなしで使えるように書き換えてください。
合格ライン
typedefを使って型名を短くできる
構造体定義における typedef のパターンを知っている