Questões Comentadas - Programação
(? Tecnico Info - UFPA 2008)40 Considere a seguinte declaração na linguagem C, rodando sobre uma arquitetura na qual o tamanho do inteiro é 4 bytes (sizeof(int)==4). #include int main() { union { int como_int; char como_char[4]; } ambos; ambos.como_int = 0x12345678; Na arquitetura da CPU com uma representação de palavras no padrão "little endian", o valor do caractere da posição zero (ambos.como_char[0]) em hexadecimal é (A) 0x78. (B) 0x12. (C) 0x34. (D) 0x56. (E) 0x00. Resolução - Clique abaixo> A palavra reservada union cria uma área de memória compartilhada entre as variáveis declaradas. Assim sendo, tanto o inteiro como o vetor de caracteres ocupam o mesmo espaço de memória (um char tem 1 byte). Como a máquina tem palavra "little endian", o bit menos significativo fica armazenado no endereço mais baixo. Assim, a resposta correta é a letra A.