__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 long
wskaź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, __w64
chyba ż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ż
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla