Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
"operator": Ergebnis der implizit in 64 Bit konvertierten 32-Bit-Schicht (war 64-Bit-Schicht vorgesehen?)
Das Ergebnis der 32-Bit-Schicht wurde in 64-Bit konvertiert, und der Compiler vermutet, dass eine 64-Bit-Schicht beabsichtigt war. Beheben Sie diese Warnung mithilfe einer 64-Bit-Schicht. Wenn eine 32-Bit-Schicht beabsichtigt ist, wandeln Sie das Schichtergebnis auf 32-Bit um, damit sie dem Compiler klar wird.
Beispiel
Im folgenden Beispiel wird C4334 generiert.
// 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
}