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;
}
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro