0

Visual C で32 (32 ビット コンパイル) と64 (64 ビット コンパイル)を定義したいと考えています。このための定義済みマクロはありますか? 私は無駄にMSDNを精査しました。

この種の3264の定義はうまくいくと思いますか?

#define _32_ if !(defined __LP64__ || defined __LLP64__) || defined _WIN32 && !defined _WIN64
        // we are compiling for a 32-bit system
the else statement will be _64_ definition
        // we are compiling for a 64-bit system

ありがとう!

4

4 に答える 4

4

ドキュメントから:

_M_IX86 : x86 プロセッサ用に定義されています。... これは x64 プロセッサでは定義されていません。

_M_X64 : x64 プロセッサ用に定義されています。

_M_IA64 : Itanium プロセッサ ファミリ 64 ビット プロセッサ用に定義されています。

_WIN32 : Win32 および Win64 のアプリケーション用に定義されています。常に定義されています。

_WIN64 : Win64 のアプリケーション用に定義されています。

好きなのを選びな。

于 2012-08-01T03:27:24.377 に答える
1

考えられるすべてのプロセッサ アーキテクチャを列挙し、それらの int-size を理解しようとすると行き詰まる可能性が_WIN64ありますが、任意のプロセッサで 64 ビット実行可能ファイルをビルドするときに定義され、「 32 ビット用に再ビルドします。

Visual C++ はかなり前からサポートしており、おそらく Visual C++ 2003 でさえサポートしています。

于 2012-08-01T03:28:06.127 に答える
1

_WIN64 プリプロセッサ マクロは常に存在します。Raymond Chen はこの件についてよく説明しています: http://blogs.msdn.com/b/oldnewthing/archive/2006/09/06/742710.aspx

于 2012-08-01T03:32:25.007 に答える
0

MSDNを確認すると_M_X64、64 ビット プロセッサ用に定義されていることが示されています。

于 2012-08-01T03:29:09.433 に答える