void hoge( char c ) ...
とか宣言してても
char ch;
...
hoge( ch );
のとき char -> int 変換される
これ C の仕様......?