Bagikan melalui


Compiler Warning (level 1) C4293

'operator' : jumlah shift negatif atau perilaku yang terlalu besar dan tidak terdefinisi

Jika jumlah shift negatif atau terlalu besar, perilaku gambar yang dihasilkan tidak ditentukan.

Keterangan

Untuk mengatasi masalah ini, Anda dapat menggunakan cast pada operand pertama untuk memperluasnya ke ukuran jenis hasil.

Contoh

Sampel berikut menghasilkan C4293, dan menunjukkan cara untuk memperbaikinya:

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