__w64
この Microsoft 固有のキーワードは廃止されています。 Visual Studio 2013 より前のバージョンの Visual Studio では、/Wp64 でコンパイルするときに、64 ビット コンパイラでコンパイルする場合に報告される警告が出力されるように、変数に付加できます。
構文
type
__w64
identifier
パラメーター
type
32 ビット コンパイラから 64 ビット コンパイラに移植されるコードで問題を発生させる可能性がある 3 つの型のいずれか (int
、long
、またはポインター)。
identifier
作成中の変数の識別子。
解説
重要
/Wp64 コンパイラ オプションと __w64
キーワードは、Visual Studio 2010 および Visual Studio 2013 では非推奨となり、Visual Studio 2013 以降では削除されています。 コマンド ラインから /Wp64
コンパイラ オプションを使用すると、コンパイラからコマンド ラインの警告 D9002 が発行されます。 __w64
キーワードは自動的に無視されます。 64 ビットの移植性の問題を検出するには、このオプションとキーワードを使用する代わりに、64 ビット プラットフォームが対象の Microsoft C++ コンパイラを使用してください。 詳細については、64 ビットの x64 ターゲット用の Visual C++ の構成に関する記事を参照してください。
__w64
が付加された typedef は、x86 上では 32 ビット、x64 上では 64 ビットである必要があります。
Visual Studio 2010 より前のバージョンの Microsoft C++ コンパイラを使用して移植性の問題を検出するためには、32 ビット プラットフォームと 64 ビット プラットフォームの間でサイズを変更するすべての typedef に __w64
キーワードを付加する必要があります。 このような型の場合、__w64
は typedef の 32 ビット定義にのみ付加する必要があります。
以前のバージョンとの互換性を確保するために、_w64 は、コンパイラ オプション /Za (言語拡張機能の無効化) が指定されていない限り、__w64
のシノニムです。
__w64
キーワードは、コンパイル時に /Wp64
が使用されない場合は無視されます。
64 ビットへの移植の詳細については、次のトピックを参照してください。
例
// __w64.cpp
// compile with: /W3 /Wp64
typedef int Int_32;
#ifdef _WIN64
typedef __int64 Int_Native;
#else
typedef int __w64 Int_Native;
#endif
int main() {
Int_32 i0 = 5;
Int_Native i1 = 10;
i0 = i1; // C4244 64-bit int assigned to 32-bit int
// char __w64 c; error, cannot use __w64 on char
}
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示