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