visualstudio2017のWin32アプリケーションでデバッグかリリースを選択する場所の右にある
x86とx64を選ぶところがありますが(プラットホーム?)、これを変更すると何が変わるのでしょうか?
私が現在持っている知識からはこれぐらいのことしか推測できないのですが、あっていますか?
その他何か変わることや、注意点などがあればご教授ください。
x86
作成したプログラムを動かすパソコンのCPUが32bitでも64bitでも動くが処理が遅い?
x64
作成したプログラムを動かすパソコンのCPUが64bitでしか動かないが処理が速い?
プラットホーム
Re: プラットホーム
処理の速度の差が出る場合もありますが,大きいのは利用可能なメモリの大きさです。
注意点としては,ポインタ型やsize_t, ptrdiff_tなどの型のサイズが変化することがあります。
x86ビルドにおいてこれらの型は32bitでしたが,x64ビルドにおいてこれらの型は64bitになります。
printfに渡すときなどに,size_tに対応する箇所を%dにしてしまうと,正しく値が表示されなくなりますし,
ref) http://dixq.net/forum/viewtopic.php?t=5310&p=44235
ポインタをint型にキャストして元の型に戻すと,値が欠落する可能性があります。
- x86は32bit用の実行ファイルを生成するため,32bit環境でも64bit環境でも実行できますが,メモリは最大4GiB (実際のユーザーメモリ空間は2GiB未満) しか扱えません。
- x64は64bit用の実行ファイルを生成するため,32bit環境では実行できず64bit環境のみで実行できますが,メモリは最大16EiB (実際はOSに依存,Windows 2016の場合は24TiB) まで扱えます。
注意点としては,ポインタ型やsize_t, ptrdiff_tなどの型のサイズが変化することがあります。
x86ビルドにおいてこれらの型は32bitでしたが,x64ビルドにおいてこれらの型は64bitになります。
printfに渡すときなどに,size_tに対応する箇所を%dにしてしまうと,正しく値が表示されなくなりますし,
ref) http://dixq.net/forum/viewtopic.php?t=5310&p=44235
ポインタをint型にキャストして元の型に戻すと,値が欠落する可能性があります。
Re: プラットホーム
よくわからないままx86を使っていたのですが、小さなプログラムしか作れないので
今後もx86のままやっていきます。
もやっとしたものがはれました ^^)
迅速な返信ありがとうございました。
今後もx86のままやっていきます。
もやっとしたものがはれました ^^)
迅速な返信ありがとうございました。
Re: プラットホーム
オフトピック
ゲームを作る時は、気にしなくていいかもしれません。
デバッグは投げ捨てるものではない。
今までの質問でこれは学んだこと。
質問する時は、必ずちゃんと調べた上に問題をもとにした仕様書を作ってから質問すること。
仕様書の大切さを改めて思い知った…。
今までの質問でこれは学んだこと。
質問する時は、必ずちゃんと調べた上に問題をもとにした仕様書を作ってから質問すること。
仕様書の大切さを改めて思い知った…。
Re: プラットホーム
そうですね。
作っているのはゲームなので今後もx86のままやっていきます。
解凍ありがとうございました。
作っているのはゲームなので今後もx86のままやっていきます。
解凍ありがとうございました。