引数をintベースにして、呼び出し側はcharの時は(int)でキャストして
呼び出され側は、charの範囲かどうかチェックすればいいんじゃないの?

関数ポインタ使うのにそういう設計したい理由がわからんけどね