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