Promoção inteira com o operador <<
Similar à perguntaPromoção Bitshift e Integer?Eu tenho uma pergunta sobre a promoção de números inteiros ao usar bitshifts à esquerda.
unsigned int test(void)
{
unsigned char value8;
unsigned int result;
value8 = 0x12;
result = value8 << 8;
return result;
}
Nesse caso, o valor8 será primeiro promovido para int não classificado ou será a implementação específica?
6.5.7 Operadores de deslocamento bit a bit... 3 Sematics ...
As promoções inteiras são realizadas em cada um dos operandos. O tipo do resultado é o do operando esquerdo promovido. Se o valor do operando direito for negativo ou for maior ou igual à largura do operando esquerdo promovido, o comportamento é indefinido.
Diz que o"As promoções inteiras são realizadas em cada um dos operandos.", mas o que é aqui a regra de promoção?
Eu suponho que deveria serconvert to int if lesser rank than int
, mas não consigo encontrar.
Eu pergunto isso, como um compilador (Renesas nc30wa) não promove int, então o resultado é sempre 0 para minha amostra.
Nesta plataforma, um caractere é de 8 bits de largura e int de 16 bits.