Vídeo: Programação em C - Aula 18 - Média das notas escolares - eXcript 2024
O programador pode quebrar um único programa em arquivos de origem separados geralmente conhecidos como módulos . Esses módulos são compilados em código de máquina pelo compilador C ++ separadamente e depois combinados durante o processo de compilação para gerar um único programa.
Estes módulos também são conhecidos por geeks compiladores como unidades de tradução C ++. O processo de combinação de módulos compilados separadamente em um único programa é chamado de vinculando .
A quebra de programas em peças menores e mais gerenciáveis tem várias vantagens. Primeiro, quebrar um programa em módulos menores reduz o tempo de compilação. Programas muito grandes podem levar bastante tempo.
Além disso, recompilar todo o código-fonte no projeto apenas porque uma ou duas linhas mudam é extremamente desperdício. É muito melhor recompilar apenas o módulo que contém a mudança e, em seguida, relink-lo em todos os módulos inalterados para criar um novo executável com a mudança. (Compilar geralmente leva mais tempo do que ligar.)
Em segundo lugar, é mais fácil de compreender - portanto, mais fácil de escrever, testar e depurar - um programa que consiste em vários módulos bem pensados, mas quase independentes, cada um dos quais representa um agrupamento lógico de funções. Um grande módulo de fonte única cheio de todas as funções que um programa pode usar rapidamente torna-se difícil de manter em linha reta.
Terceiro é o fantasma muito voraz de reutilização. Um módulo cheio de funções reutilizáveis que podem ser vinculadas em futuros programas é mais fácil de documentar e manter. Uma mudança no módulo para corrigir alguns erros é rapidamente incorporada em outros executáveis que usam esse módulo.
Finalmente, há a questão de trabalhar em conjunto como equipe. Dois programadores não podem trabalhar no mesmo módulo (pelo menos não muito bem). Uma abordagem mais fácil é atribuir um conjunto de funções contidas em um módulo a um programador enquanto atribui um conjunto diferente de funções em um módulo diferente para um segundo programador. Os módulos podem ser interligados quando estão prontos para testes.