Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
'operator': resultaat van 32-bits verschuiving impliciet geconverteerd naar 64 bits (was 64-bits verschuiving bedoeld?)
Opmerkingen
Het resultaat van een 32-bits verschuiving is omgezet naar 64-bits en de compiler vermoedt dat een 64-bits verschuiving was bedoeld. Los deze waarschuwing op met behulp van een 64-bits verschuiving. Als een 32-bits verschuiving opzettelijk is, cast het resultaat van de verschuiving naar 32-bits om het duidelijk te maken voor de compiler.
Example
In het volgende voorbeeld wordt C4334 gegenereerd.
// 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
}