__w64

To słowo kluczowe specyficzne dla firmy Microsoft jest przestarzałe. W wersjach programu Visual Studio starszych niż Visual Studio 2013 pozwala to oznaczyć zmienne, dzięki czemu podczas kompilowania za pomocą /Wp64 kompilator zgłosi wszelkie ostrzeżenia, które zostaną zgłoszone, jeśli kompilujesz z kompilatorem 64-bitowym .

Składnia

identyfikator typu__w64

Parametry

type
Jeden z trzech typów, które mogą powodować problemy z przenoszeniem kodu z 32-bitowego do 64-bitowego kompilatora: int, lub longwskaźnika.

Identyfikator
Identyfikator tworzonej zmiennej.

Uwagi

Ważne

Opcja kompilatora /Wp64 i __w64 słowo kluczowe są przestarzałe w programach Visual Studio 2010 i Visual Studio 2013 i usuwane począwszy od programu Visual Studio 2013. Jeśli używasz opcji kompilatora /Wp64 w wierszu polecenia, kompilator wystawia ostrzeżenie wiersza polecenia D9002. Słowo __w64 kluczowe jest ignorowane w trybie dyskretnym. Zamiast używać tej opcji i słowa kluczowego do wykrywania problemów z przenośnością 64-bitową, użyj kompilatora języka Microsoft C++, który jest przeznaczony dla platformy 64-bitowej. Aby uzyskać więcej informacji, zobacz Konfigurowanie języka Visual C++ dla 64-bitowych obiektów docelowych x64.

Każda definicja typu, która ma __w64 na nim, musi być 32 bity w x86 i 64 bitach na x64.

Aby wykryć problemy z przenośnością przy użyciu wersji kompilatora Microsoft C++ starszej niż Visual Studio 2010, __w64 słowo kluczowe powinno być określone na dowolnych definicjach typów, które zmieniają rozmiar między 32-bitowymi i 64-bitowymi platformami. W przypadku dowolnego takiego typu __w64 musi być wyświetlana tylko w 32-bitowej definicji typu.

Aby uzyskać zgodność z poprzednimi wersjami, _w64 jest synonimem, __w64chyba że określono opcję kompilatora /Za (Wyłącz rozszerzenia języka).

Słowo __w64 kluczowe jest ignorowane, jeśli kompilacja nie używa polecenia /Wp64.

Aby uzyskać więcej informacji na temat przenoszenia do wersji 64-bitowej, zobacz następujące tematy:

Przykład

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

Zobacz też

Słowa kluczowe