Derleyici Uyarısı (düzey 3) C4334
'operator': 32 bit kaydırmanın sonucu örtük olarak 64 bite dönüştürüldü (64 bit kaydırma amaçlandı mı?)
32 bit kaydırmanın sonucu 64 bit'e dönüştürüldü ve derleyici 64 bit kaydırmanın amaçlandığını şüpheleniyor. 64 bit vardiya kullanarak bu uyarıyı çözün. 32 bit kaydırma kasıtlı olarak yapılırsa, derleyiciye açık hale getirmek için shift sonucunu 32 bit'e yayın.
Örnek
Aşağıdaki örnek C4334 oluşturur.
// C4334.cpp
// compile with: /W3 /c
void SetBit(unsigned __int64 *p, int i) {
*p |= (1 << i); // C4334, 32-bit shift cast to 64-bit
*p |= (1i64 << i); // OK, 64-bit shift
*p |= static_cast<int>(1 << i); // OK, 32-bit shift saved to 64-bit result
*p |= static_cast<__int64>(1) << i; // OK, 64-bit shift
}
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin