Sdílet prostřednictvím


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

'operator' : shift count negative or too big, undefined behavior

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

Poznámky

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í ukázka vygeneruje C4293 a ukazuje způsoby, jak ji 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;
}