Freigeben über


__w64

Dieses Microsoft-spezifische Schlüsselwort ist veraltet. In älteren Versionen als Visual Studio 2013 können Sie damit Variablen markieren, sodass der Compiler beim Kompilieren mit /Wp64 alle Warnungen ausgibt, die gemeldet worden wären, wenn Sie mit einem 64-Bit-Compiler kompiliert hätten.

Syntax

Typbezeichner__w64

Parameter

type
Einer der drei Typen, der möglicherweise Probleme im Code verursachen könnte, der von einem 32-Bit- auf einen 64-Bit-Compiler portiert wird: int, long oder ein Zeiger.

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

Hinweise

Wichtig

Die /Wp64 Compileroption und das __w64-Schlüsselwort sind in Visual Studio 2010 und Visual Studio 2013 veraltet und werden ab Visual Studio 2013 entfernt. Wenn Sie die /Wp64-Compileroption in der Befehlszeile verwenden, gibt der Compiler eine Befehlszeilenwarnung D9002 aus. Das __w64-Schlüsselwort wird stillschweigend ignoriert. Verwenden Sie statt dieser Option und dieses Schlüsselworts zum Ermitteln von 64-Bit-Portabilitätsproblemen einen Microsoft C++-Compiler, der für eine 64-Bit-Plattform konzipiert ist. Weitere Informationen finden Sie unter Konfigurieren von Visual C++ für 64-Bit-, x64-Ziele.

Jede Typedefinition, die __w64 aufweist, muss sich auf x86 mit 32 Bit und auf x64 mit 64 Bit befinden.

Um Portabilitätsprobleme mit Versionen von Microsoft C++-Compiler vor Visual Studio 2010 zu erkennen, sollte das __w64-Schlüsselwort bei allen Typendefinitionen angegeben werden, bei denen sich die Größe zwischen 32-Bit und 64-Bit-Plattformen ändert. Für einen solchen Typ muss __w64 nur in der 32-Bit-Definition der Typendefinition enthalten sein.

Aus Gründen der Kompatibilität mit früheren Versionen ist _w64 ein Synonym für __w64, es sei denn, die Compileroption /Za (Spracherweiterungen deaktivieren) ist angegeben.

Das __w64-Schlüsselwort wird ignoriert, wenn die Kompilierung nicht /Wp64 verwendet.

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