Um programa é uma série de instruções. Normalmente, o computador irá ler e executar instruções, uma após a outra, em série.
Isso é ótimo, mas a maioria dos programas fará a mesma tarefa em vários momentos, ou na mesma tarefa, com pequenas variações em vários momentos. Em vez de reescrever as instruções dessa tarefa várias vezes, uma opção disponível para programadores é empacotar essas instruções em uma sub-rotina ou função .
Então, em vez de copiar as instruções várias vezes, você diz ao programa para chamar essa função e, portanto, economizar espaço. Linking liga esta função a todos os lugares que a chamam no programa, quando o programa é construído. O programa também é mais fácil de manter, pois, se você quiser alterar essa tarefa, poderá alterá-lo em um lugar e não em todo o programa.
A maioria dos programas tem funções que são usadas dentro desse programa. Eles fazem parte desse programa, são carregados e só são acessíveis a esse programa.
Mas e se você tiver uma ótima função (como uma que tire uma data e retorne o dia da semana) e deseje usá-la em muitos programas diferentes? Bibliotecas de links dinâmicos , ou arquivos .dll no Windows, permitem isso. É chamado ligação dinâmica porque a ligação ocorre em tempo de execução quando o programa é carregado em vez de no tempo de compilação quando é compilado (neste caso é chamado ligação estática ).
Você pode empacotar a função em um arquivo .dll específico e, em seguida, informar o programa principal que deseja usar ou importar funções desse arquivo .dll.
Agora, se você quiser atualizar o que essa função faz, ou corrigir bugs, você está em uma situação ainda melhor, já que tudo o que você precisa fazer é alterar as funções em um arquivo e cada programa que o usa será automaticamente atualizado . A desvantagem é agora o seu programa depende de outro arquivo para funcionar corretamente. Normalmente, os benefícios superam as desvantagens de tudo, exceto os programas de recuperação do sistema de emergência que precisam funcionar quando você não pode carregar nada do disco e tal.