ポインターのサイズはどのOSでコンパイルしてるかじゃなくて
何用のモジュールとしてコンパイルしてるかで決まるだろ。
コンパイラーオプションで選べるんじゃ無いの?

32ビット環境で64ビット用モジュールも書けるし
64ビット環境で32ビットプログラムも書けるだろ。

64ビットOSでも32ビットの仮想実行環境もあるし
32ビットOSでも仮想16ビット実行環境を用意してるのもある。
そういうOSなら、OSとは異なったビット幅のプログラムでも実行できる