CHAR_BITの話はさておいても、intもdoubleも規格ではサイズ決まってないというところ。

C99だとintは最低16bit doubleは最低32bitって決められてるのかな。