結局、void hoge(char ...
で char -> int 変換されるってのは仕様ではないんですか?