__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
, , long
oder 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 /Wp64
wird.
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
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für