Share via


Upozornění kompilátoru (úroveň 1) C4319

'~' : nula rozšíření 'type1' na 'type2' větší velikosti

Výsledek operátoru (bitového doplňku ~ ) je bez znaménka a při převodu na větší typ je pak nulový.

Příklad

V následujícím příkladu ~(a - 1) se vyhodnotí jako 32bitový nepodepsaný dlouhý výraz a pak se převede na 64 bitů nulovým rozšířením. To může vést k neočekávaným výsledkům operace.

// 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
}