Avertissement du compilateur (niveau 1) C4293

'operator' : décalage de nombre négatif ou trop volumineux, comportement non défini

Si un nombre de décalages est négatif ou trop volumineux, le comportement de l’image résultante n’est pas défini.

Notes

Pour résoudre ce problème, vous pouvez utiliser un cast sur le premier opérande pour l’étendre à la taille du type de résultat.

Exemple

L’exemple suivant génère l’erreur C4293 et montre comment le corriger :

// C4293.cpp
// compile with: /c /W1
unsigned __int64 combine (unsigned lo, unsigned hi)
{
   return (hi << 32) | lo;   // C4293

   // In C, try the following line instead:
   // return ( (unsigned __int64)hi << 32) | lo;
   // In C++, try this line instead:
   // return (static_cast<unsigned __int64>(hi) << 32) | lo;
}