Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

【自習メモ】typedefとusing

typedefやusingはc/cppにて独自のデータ型を作るときに使用する予約語です。
マイコンを跨いだ実装でありがちな取り扱いビット数の差も、これらを用いて吸収できます。
基本型の機能を極力使いたいけど、一部振る舞いだけ変えたいとき、
あるいはアーキテクチャ間でコードを使いまわしたいがターゲットビットが違う場合なんかで有効です。

実際のところ

typedef

typedefはC言語で構造体を記述するときに出てきますね。
C++の時はクラス使うのでしょうか(C++クソザコ勢

typedef struct
{
  char *cmd;
  void (*func)(char argc, char **argv);
} cmd_t;

static cmd_t cmd_tbl[] = {
  {"start", start},
  {"hello", hello},
  {NULL, NULL}  //いわゆる番兵法
};

他にも、型の宣言でも使えます。

typedef int NewInt;

using

こっちの方が新しい記述です。
C++系の実装なら、優先的にこっちを使った方がいいでしょう。
逆にCだと対応してないコンパイラもあったりします。

先ほどのtypedefでの型定義はusingだと以下のように書く事ができます。

using NewInt = int;