O compilador g c c da linguagem C possui um conjunto de fla...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
**Alternativa Correta: D - -O3**
Tema Central da Questão: A questão aborda as flags de otimização do compilador GCC para a linguagem de programação C. A otimização de código é um processo crucial para melhorar o desempenho de programas, tornando-os mais rápidos e eficientes. As flags de otimização do GCC determinam o nível de otimização aplicado durante a compilação do código.
Resumo Teórico: No GCC, as flags de otimização são usadas para instruir o compilador a aplicar diferentes níveis de otimização ao código fonte. As opções variam de -O0 (nenhuma otimização) a -O3 (nível máximo de otimização comumente disponível). Cada nível adiciona mais técnicas de otimização ao processo de compilação, o que pode resultar em um código executável mais eficiente.
De acordo com a documentação do GCC, disponível no site oficial (https://gcc.gnu.org/), os níveis de otimização são descritos da seguinte forma:
- -O0: Sem otimização; a prioridade é a velocidade de compilação e a depuração.
- -O1: Compromisso entre tempo de compilação e tempo de execução.
- -O2: Otimização que não compromete a estabilidade do código.
- -O3: Inclui todas as otimizações de -O2, além de outras que podem aumentar ainda mais o desempenho, como a expansão de funções inline.
- -O4: Não é uma flag oficialmente suportada pelo GCC; pode ser considerado um erro ou confusão com práticas de outras ferramentas.
Justificativa para a Alternativa Correta: A flag -O3 é a opção correta porque ela representa o maior nível de otimização oferecido pelo GCC. Este nível inclui todas as otimizações dos níveis anteriores (como -O2), além de técnicas adicionais que podem beneficiar ainda mais o desempenho do código.
Análise das Alternativas Incorretas:
- A - -O0: Sem qualquer otimização, o código é compilado para depuração, não para desempenho.
- B - -O1: Aplica otimizações básicas que não são focadas em maximizar o desempenho.
- C - -O2: Este nível aplica várias otimizações úteis, mas não inclui algumas das otimizações mais agressivas que são usadas no -O3.
- E - -O4: Não existe como uma opção válida no GCC, tornando esta alternativa incorreta.
Lembre-se de sempre verificar a documentação oficial do compilador para se manter atualizado sobre quais otimizações estão disponíveis e como elas afetam o desempenho do seu código.
Gostou do comentário? Deixe sua avaliação aqui embaixo!
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
O gcc possui várias opções de otimização controladas pelas flags “-O” seguidas de um número (ou letra), que definem o nível de otimização aplicado ao código durante a compilação:
• -O0: Nenhuma otimização. Compilação mais rápida, mas o código executável não é otimizado.
• -O1: Otimização básica, melhora um pouco o desempenho sem afetar muito o tempo de compilação.
• -O2: Otimizações mais agressivas do que -O1, ainda mantendo boa estabilidade e tempo de compilação razoável.
• -O3: Nível mais alto de otimização padrão, ativa otimizações adicionais como loop unrolling e function inlining agressivo. Pode gerar executáveis significativamente mais rápidos.
• -O4: Não existe oficialmente no gcc. Qualquer menção a -O4 geralmente é um erro ou uma personalização não padrão.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo