Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

【自習メモ】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;