__w64

Cette mot clé spécifique à Microsoft est obsolète. Dans les versions de Visual Studio antérieures à Visual Studio 2013, cela vous permet de marquer des variables, de sorte que lorsque vous compilez avec /Wp64 , le compilateur signale tous les avertissements qui seraient signalés si vous compilez avec un compilateur 64 bits.

Syntaxe

identificateur de type__w64

Paramètres

type
L’un des trois types susceptibles de provoquer des problèmes dans le code en cours de portage d’un compilateur 32 bits vers un compilateur 64 bits : int, longou un pointeur.

identifier
Identificateur de la variable que vous créez.

Notes

Important

L’option du compilateur /Wp64 et __w64 les mot clé sont déconseillées dans Visual Studio 2010 et Visual Studio 2013 et supprimées à partir de Visual Studio 2013. Si vous utilisez l’option /Wp64 du compilateur sur la ligne de commande, le compilateur émet l’avertissement de ligne de commande D9002. La __w64 mot clé est ignorée silencieusement. Au lieu d’utiliser cette option et mot clé pour détecter les problèmes de portabilité 64 bits, utilisez un compilateur Microsoft C++ qui cible une plateforme 64 bits. Pour plus d’informations, consultez Configurer Visual C++ pour les cibles x64 bits.

Tout typedef qui a __w64 dessus doit être de 32 bits sur x86 et 64 bits sur x64.

Pour détecter les problèmes de portabilité à l’aide des versions du compilateur Microsoft C++ antérieures à Visual Studio 2010, la __w64 mot clé doit être spécifiée sur tous les typesdefs qui changent de taille entre les plateformes 32 bits et 64 bits. Pour tout type de ce type, __w64 doit apparaître uniquement sur la définition 32 bits du typedef.

Pour la compatibilité avec les versions précédentes, _w64 est un synonyme de __w64 l’option du compilateur /Za (Désactiver les extensions de langage) spécifiée.

La __w64 mot clé est ignorée si la compilation n’utilise /Wp64pas .

Pour plus d'informations sur le portage vers 64 bits, consultez les rubriques suivantes :

Exemple

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

Voir aussi

Mots clés