__w64

Diese microsoftspezifische Schlüsselwort (keyword) ist veraltet. In Versionen von Visual Studio vor Visual Studio 2013 können Sie Variablen markieren, sodass der Compiler beim Kompilieren mit /Wp64 alle Warnungen meldet, die gemeldet werden würden, wenn Sie mit einem 64-Bit-Compiler kompiliert wurden.

Syntax

Typbezeichner__w64

Parameter

type
Einer der drei Typen, die probleme beim Portieren von Code von einem 32-Bit-Compiler zu einem 64-Bit-Compiler verursachen können: int, , longoder ein Zeiger.

identifier
Der Bezeichner für die Variable, die Sie erstellen.

Hinweise

Wichtig

Die /Wp64-Compileroption und __w64 Schlüsselwort (keyword) sind in Visual Studio 2010 und Visual Studio 2013 veraltet und ab Visual Studio 2013 entfernt. Wenn Sie die Compileroption in der /Wp64 Befehlszeile verwenden, gibt der Compiler die Befehlszeilenwarnung D9002 aus. Die __w64 Schlüsselwort (keyword) wird im Hintergrund ignoriert. Anstatt diese Option zu verwenden und Schlüsselwort (keyword), um 64-Bit-Portabilitätsprobleme zu erkennen, verwenden Sie einen Microsoft C++-Compiler, der auf eine 64-Bit-Plattform ausgerichtet ist. Weitere Informationen finden Sie unter Konfigurieren von Visual C++ für 64-Bit-, x64-Ziele.

Jeder Typedef, der darauf verfügt, __w64 muss 32 Bit auf x86 und 64 Bit auf x64 sein.

Um Portabilitätsprobleme mithilfe von Versionen des Microsoft C++-Compilers vor Visual Studio 2010 zu erkennen, sollte die __w64 Schlüsselwort (keyword) für alle Typen angegeben werden, die die Größe zwischen 32-Bit- und 64-Bit-Plattformen ändern. Für einen solchen Typ __w64 darf nur in der 32-Bit-Definition der Typedef angezeigt werden.

Zur Kompatibilität mit früheren Versionen ist _w64 ein Synonym, __w64 es sei denn, die Compileroption /Za (Spracherweiterungen deaktivieren) ist angegeben.

Die __w64 Schlüsselwort (keyword) wird ignoriert, wenn die Kompilierung nicht verwendet /Wp64wird.

Weitere Informationen zum Portieren auf 64 Bit finden Sie unter den folgenden Themen:

Beispiel

// __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
}

Siehe auch

Schlüsselwörter