Dela via


Kompilatorvarning (nivå 1) C4319

~: noll utökar "type1" till "type2" med större storlek

Anmärkningar

Resultatet av operatorn ~ (bitvis komplement) är osignerat och sedan nollförlängt när det konverteras till en större typ.

Example

I följande exempel ~(a - 1) utvärderas som ett 32-bitars osignerat långt uttryck och konverteras sedan till 64 bitar med noll tillägg. Detta kan leda till oväntade åtgärdsresultat.

// C4319.cpp
// compile with: cl /W4 C4319.cpp
int main() {
   unsigned long a = 0;
   unsigned long long q = 42;
   q = q & ~(a - 1);    // C4319 expected
}