Share via


__w64

(Específicos de Microsoft) Esta palabra clave está obsoleta. En versiones de Visual Studio anteriores a Visual Studio 2013, le permite marcar variables de modo que cuando usted compile con /Wp64 el compilador notifique cualquier advertencia que se notificaría si estuviese compilando con un compilador de 64 bits.

        type __w64 identifier

Parámetros

  • type
    Uno de los tres tipos que pueden causar problemas al migrar el código de un compilador de 32 bits a otro de 64 bits: int, long o un puntero.

  • identifier
    Identificador de la variable que va a crear.

Comentarios

Importante

La opción del compilador /Wp64 y la palabra clave __w64 está en desuso en Visual Studio 2010 y Visual Studio 2013 y eliminada a partir de Visual Studio 2013.Si se utiliza la opción /Wp64 del compilador en la línea de comandos, el compilador emite el mensaje Command-Line Warning D9002.La palabra clave __w64 se ignora de modo silencioso.En lugar de utilizar esta opción y la palabra clave para detectar problemas de portabilidad a 64 bits, utilice un compilador de Visual C++ cuyo destino sea una plataforma de 64 bits.Para obtener más información, consulta Programas de configuración para 64 bits (Visual C++).

Cualquier definición de tipo que contenga __w64 debe ser de 32 bits en x86 y de 64 bits en x64.

Para detectar problemas de portabilidad mediante versiones del compilador de Visual C++ anteriores a Visual Studio 2010, se debe especificar la palabra clave __w64 en cualquier definición de tipo que cambie de tamaño entre plataformas de 32 y 64 bits. Para dicho tipo, __w64 únicamente debe aparecer en la definición de 32 bits de la definición de tipo.

Se omite la palabra clave __w64 si la compilación no utiliza /Wp64.

Para obtener más información sobre la portabilidad a 64 bits, vea los temas siguientes:

Ejemplo

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

Vea también

Referencia

Palabras clave de C++