型別名を使うと、手続き宣言の中でパラメータを前方に宣言することができますが、ポインタ(その渡し方がどうであれ)しか使用できません。また、パラメータ(配列を除く)を参照によって渡されたり返されたりで使えるだけです。
一般に、このような手続きの本体は、実際の型が十分に定義された後で、コードの中でさらに実装する必要があります(例えば、このような参照を渡したり、または渡されたポインタがその後何らかの形で逆参照される場合などです)。
型の別名は、
ユーザー定義型 のデータ項目の前方宣言を可能にするために使えますが、ポインターで使うことができるだけです。
関数ポインターへのポインターの宣言を許可するには、型の別名を使う必要があります。そうしないと、ptr は関数ではなく戻り値の型に適用されます。
Type Alias 宣言は、
Type か Union の UDT 構造宣言内にネストすることもできます。