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