雑記帳

型定義 (typedef)

※ C言語を深く知らない人によるメモなので、専門の人からするとガバガバな認識の可能性あり。
型定義 (typedef)
「typedef」の後に続けて通常の変数宣言を行うことで、「その変数のデータ識別子名を、typedef が無かったらその変数が持つことになっていたデータ型として型を新たに定義」することができる。
typedef ...
わかりやすいように具体例をいくつか。
単純な例
typedef unsigned int uint;
このように「unsigned int」型の「uint」というデータを「typedef」の後に続けて宣言することで、「unsigned int」型と同じ意味を持った「uint」という型が新たに定義される。
複数のデータ宣言を行った場合の例
typedef char CHAR, *PSTR;
このように「char」型の「CHAR」というデータと、「char *」型の「PSTR」というデータを「typedef」の後に続けて宣言することで、「char」型と同じ意味を持った「CHAR」という型と、「char *」型と同じ意味を持った「PSTR」という型が新たに定義される。
構造体
typedef struct tagSOMESTRUCT SOMESTRUCT;
このように「struct tagSOMESTRUCT」型の「SOMESTRUCT」というデータを「typedef」の後に続けて宣言することで、「struct tagSOMESTRUCT」型と同じ意味を持った「SOMESTRUCT」という型が新たに定義される。
関数ポインタ
typedef int(__cdecl *SOMEPROC)(int, void *);
このように「int(__cdecl *)(int, void *)」型の「SOMEPROC」というデータを「typedef」の後に続けて宣言することで、「int(__cdecl *)(int, void *)」型と同じ意味を持った「SOMEPROC」という型が新たに定義される。