2016-11-24 4 views
-2

64ビットコンパイラで長いデータ型のサイズが変更されました。 32ビットコンパイラでは、両方ともint &は4バイトサイズです。一方、64ビットでは、4 & 8バイトに変更されます。なぜこの違いがありますか?32ビットおよび64ビットコンパイラで長いデータ型のサイズが変更されました

+1

コンパイラによるものです。 –

+1

なぜあなたはそれらが同じであると思いますか?? –

+1

64ビット版のMicrosoft Windowsでは、両方とも32ビット、4バイトです。 Linuxでは、 'long'はポインタと同じサイズです。 –

答えて

-2

データのサイズ(ビット数)を決めるのは、マイクロコントローラの内部レジスタの幅です。
ソフトウェアは常にハードウェアの後ろにあり、64ビットプロセッサを搭載し、32ビットコンパイラまたは16ビットコンパイラでプログラムをコンパイルするのは珍しいことではありません(私はまだ16ビットソフトウェアを実行しています64ビットプロセッサ)。

あなたが持っているプロセッサの能力を最大限に引き出すために、機能をターゲットとしたコンパイラがあるのが理想的です。

現在、大半のコンピュータに64ビットプロセッサが搭載されていますが、すべてのコンパイラがハードウェアのフルパワーを使用できるわけではありません。

マイクロソフトによれば、これらのツールは、ポインタの幅とデータ幅を維持しながら、32ビットから64ビットのコードを区別し続けます。

ただし、プロセッサの内部レジスタの64ビットを最大限に活用するコンパイラを使用することはできません。

関連する問題