typedef struct Hoge *Hoge;ってどっかの流派であるの?
C++に慣れた頭からすると、C++だとstruct HogeはHogeという型名でもアクセスできるから、混乱しそうだなとは思うんだけど。