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
}