ExpertiDict

C · Avançado · Português · Técnico

conversão aritmética usual

/kõ.veɾ.ˈsɐ̃w̃ a.ɾit.ˈmɛ.tʃi.ka u.zu.ˈaw/substantivo

Regras que levam os operandos de uma operação binária a um tipo comum antes do cálculo. Entre int e unsigned, o int vira sem sinal, mudando comparações.

Onde usar

Explica o bug de -1 < 1u ser falso: -1 vira um unsigned enorme. Aparece em comparações de índices com size_t e é o alvo do aviso -Wsign-compare.

Em código

#include <stdio.h>
int main(void) {
  int a = -1;
  unsigned b = 1;
  if (a < b) puts("menor");
  else puts("a vira unsigned: maior");
}

Exemplos

A comparação deu falso por causa da conversão aritmética usual do int para unsigned.

Liga o -Wsign-compare para pegar essas conversões.

Cuidado

Misturar tipos com e sem sinal em comparações e subtrações achando que o sinal é preservado.

Sinônimos

usual arithmetic conversions

Veja também

Todos os termos de C