Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
"operator": resultatet av 32-bitars skift konverteras implicit till 64 bitar (var 64-bitars skift avsett?)
Anmärkningar
Resultatet av 32-bitars skift konverterades till 64-bitars, och kompilatorn misstänker att ett 64-bitars skift var avsett. Lös den här varningen med hjälp av ett 64-bitars skift. Om ett 32-bitars skift är avsiktligt kastar du skiftresultatet till 32-bitars för att göra det klart för kompilatorn.
Example
I följande exempel genereras 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
}