Derleyici Uyarısı (düzey 1) C4293
'operator' : shift count negatif veya çok büyük, tanımsız davranış
Vardiya sayısı negatif veya çok büyükse, sonuçta elde edilen görüntünün davranışı tanımsız olur.
Açıklamalar
Bu sorunu çözmek için ilk işlenende bir atama kullanarak sonuç türünün boyutuna genişletebilirsiniz.
Örnek
Aşağıdaki örnek C4293 oluşturur ve düzeltmenin yollarını gösterir:
// 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;
}