Sdílet prostřednictvím


Upozornění kompilátoru (úroveň 1) C4293

'operátor': počet posunů je negativní nebo příliš velký, neurčené chování

Poznámky

Pokud je počet posunů záporný nebo příliš velký, chování výsledného obrázku není definováno.

Pokud chcete tento problém vyřešit, můžete ho pomocí přetypování prvního operandu rozšířit na velikost typu výsledku.

Příklad

Následující příklad vygeneruje C4293 a ukazuje způsoby, jak ho opravit:

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