Kompilatorvarning (nivå 1) C4293

Operator: skiftantal negativt eller för stort, odefinierat beteende

Anmärkningar

Om ett skiftantal är negativt eller för stort är beteendet för den resulterande bilden odefinierat.

För att lösa det här problemet kan du använda en cast på den första operanden för att expandera den till storleken på resultattypen.

Example

Följande exempel genererar C4293 och visar sätt att åtgärda det:

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