Compilerwarnung (Stufe 1) C4293

Aktualisiert: November 2007

Fehlermeldung

'Operator' : Eine Verschiebung wurde mit einem negativen oder zu großen Wert aufgerufen, nicht definiertes Verhalten
'operator' : shift count negative or too big, undefined behavior

Wenn eine Verschiebung mit einem negativen oder zu großen Wert aufgerufen wird, ist das Verhalten des resultierenden Abbildes nicht definiert.

Beispiel

Im folgenden Beispiel wird C4293 generiert:

// C4293.cpp
// compile with: /c /W1
unsigned __int64 combine (unsigned lo, unsigned hi) {

   return (hi << 32) | lo;   // C4293

   // try the following line instead
   // return ( (unsigned __int64)hi << 32) | lo;
}