Freigeben über


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

Siehe auch

Referenz

C++-Schlüsselwörter