Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
"operator": wynik 32-bitowej zmiany niejawnie przekonwertowany na 64 bity (czy 64-bitowa zmiana ma być przeznaczona?)
Uwagi
Wynik 32-bitowej zmiany został przekonwertowany na 64-bitowy, a kompilator podejrzewa, że 64-bitowa zmiana była przeznaczona. Rozwiąż to ostrzeżenie przy użyciu 64-bitowej zmiany. Jeśli 32-bitowa zmiana jest celowa, rzutuj wynik przesunięcia na 32-bitowy, aby wyjaśnić kompilatorowi.
Przykład
Poniższy przykład generuje kod C4334.
// 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
}