Typedef
C/C++にはテキストの置換機能としてマクロも備わっているが、型名の置換に使うには問題がある。まず、ポインタ型を正しく扱えない。
typedefであればポインタ型を正しく扱える。
また、マクロは乱暴な置換を行なうことから、意図しない置換による原因特定のしにくいコンパイルエラーを引き起こすこともある。