Como construir bibliotecas C reutilizáveis: um guia passo a passo

9

C é uma linguagem minimalista. Ele fornece os fundamentos da programação. Você obtém variáveis, loops e fluxo de controle. É isso. Se você quiser ler em um teclado ou imprimir em uma tela, C não possui essas funções integradas. Você tem que escrevê-los ou usar uma biblioteca.

É por isso que bibliotecas em C são tão críticas. São pedaços de código que os programadores extraem de seus projetos para torná-los reutilizáveis. Você provavelmente já usou a biblioteca de E/S padrão, ou stdio, sem pensar nisso. Mas, além disso, existem bibliotecas para matemática, strings e tempo. Você pode construir o seu próprio.

Dividir seu código em módulos facilita o teste, a depuração e a compreensão. Também permite reutilizar a lógica em diferentes programas. Vejamos como pegar um script monolítico e transformar uma parte dele em uma função portátil.

Extraindo lógica de um monólito

Considere este programa C. Ele preenche uma matriz com números aleatórios, classifica-os usando um algoritmo de classificação por bolha e imprime os resultados.

A lógica de classificação aqui está enterrada em main. Para tornar isso reutilizável, precisamos extrair o tipo de bolha.

Criando uma função básica

A matriz a e a constante MAX são globais neste exemplo. Isso significa que a função de classificação não precisa estritamente de parâmetros para acessá-los. No entanto, as boas práticas determinam o uso de variáveis ​​locais para os contadores de loop (x, y, t ) para manter a função independente.

Aqui está o código refatorado. Isolamos a lógica de classificação em bubble_sort.

Você passa o número de elementos para bubble_sort em vez de codificar MAX. Funciona. Mas ainda está vinculado ao array global a.

Generalizando para uma verdadeira reutilização

Uma função só é verdadeiramente reutilizável se não depender do estado global. Podemos generalizar ainda mais bubble_sort passando o próprio array como parâmetro.

Altere a assinatura da função para:

Isso diz ao compilador para aceitar um array inteiro de qualquer tamanho. O corpo de bubble_sort não muda. Você acabou de atualizar a chamada em main :

Observe que não usamos &a na chamada de função. Você pode esperar passar o endereço porque a classificação modifica o array, mas em C, os arrays se transformam em ponteiros quando

Попередня статтяRoku Streaming Stick: versões MHL vs HDMI explicadas
Наступна статтяComo a televisão evoluiu dos raios catódicos para telas digitais de alta definição