>>78
32bit かどうかは処理系依存だし、float* と short* の内部表現が違うかもしれない……という
話は置いといて、

unsigned char *buf;
int *np = reinterpret_cast<short*>(buf);

としたときに *buf, *np が異なるコードを生成することは良いよね? buf を int へのポインタ
として扱うために必要になるのが reinterpret_cast。これをやらんとコンパイル時エラーになる。