Partager via


Avertissement du compilateur (niveau 1) C4319

'~' : zéro extension 'type1' à 'type2' de taille supérieure

Le résultat de l’opérateur ~ (complément au niveau du bit) n’est pas signé, puis étendu zéro lorsqu’il est converti en type plus grand.

Exemple

Dans l’exemple suivant, ~(a - 1) est évalué comme une expression longue non signée 32 bits, puis convertie en 64 bits par extension zéro. Cela peut entraîner des résultats d'opération inattendus.

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