Partilhar via


Aviso do compilador (nível 1) C4319

'~' : zero estendendo 'tipo1' a 'tipo2' de tamanho maior

Observações

O resultado do operador ~ (complemento bitwise) é sem sinal e depois zero-estendido quando é convertido para um tipo maior.

Example

No exemplo a seguir, ~(a - 1) é avaliado como uma expressão "unsigned long" de 32 bits e, em seguida, convertido em 64 bits através da extensão de zero. Isso pode levar a resultados de operação inesperados.

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