__w64
(Microsoft-spezifisch) Dieses 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.
type __w64 identifier
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 Command-Line Warning 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 Visual C++-Compiler, der für eine 64-Bit-Plattform konzipiert ist.Weitere Informationen finden Sie unter Programme für 64-Bit-Systeme (Visual C++) konfigurieren.
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 Visual 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.
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
}