Freigeben über


Compilerwarnung (Ebene 1) C4293

"Operator" : Negatives oder zu großes, nicht definiertes Verhalten der Schicht

Wenn eine Schichtanzahl negativ oder zu groß ist, ist das Verhalten des resultierenden Bilds nicht definiert.

Hinweise

Um dieses Problem zu beheben, können Sie eine Umwandlung auf dem ersten Operanden verwenden, um es auf die Größe des Ergebnistyps zu erweitern.

Beispiel

Im folgenden Beispiel wird C4293 generiert, und es werden Möglichkeiten zum Beheben gezeigt:

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