お、大分進んだじゃん。
「void型の関数」、「voidを返す関数」とか「char型の関数」が微妙だけど。
あと、「アドレスにキャスト」も変だな。
ポインタのキャストの場合、一般的に型は変わっても値そのものは変わらないわけだから。
呼び出しの下りはこんな感じかな。
戻り値のない関数へのポインタであるfpを、戻り値がchar型である関数へのポインタとしてキャストすることで
戻り値がchar型である関数と見なして呼び出し、その戻り値をint型に暗黙の型変換してfprintf()への引き数とする。
#実際には引き数リストも宣言すべきだから、typedefを使って型を定義しておくのが無難なんだけどね。
##それ以前に必要のないキャストは……って、これは前に書いたか。