Em uma expressão C em que int não assinado e int assinado estão presentes, qual tipo será promovido para qual tipo?
Eu tenho uma consulta sobre regras de promoção de tipo de dados no padrão da linguagem C. O C99 diz que:
As promoções com números C também exigem que "se um int puder representar todos os valores do tipo original, o valor será convertido em um int; caso contrário, será convertido em um int não assinado".
Minhas perguntas são no caso de uma expressão da linguagem C em queunsigned int
esigned int
estão presentes, qual tipo será promovido para que tipo?
Por exemplo.int
não pode representar todos os valores dounsigned int
(valores maiores queMAX_INT
valores) enquantounsigned int
não pode representar os valores -ve; portanto, que tipo é promovido para o que nesses casos?