Come creare librerie C riutilizzabili: una guida passo passo

5

C è un linguaggio minimalista. Ti dà le ossa nude della programmazione. Ottieni variabili, loop e flusso di controllo. Questo è tutto. Se vuoi leggere da una tastiera o stampare su uno schermo, C non ha queste funzioni integrate. Devi scriverli o usare una libreria.

Questo è il motivo per cui le librerie in C sono così critiche. Sono pezzi di codice che i programmatori estraggono dai loro progetti per renderli riutilizzabili. Probabilmente hai utilizzato la libreria I/O standard, o stdio, senza pensarci. Ma oltre a ciò, ci sono librerie per matematica, stringhe e tempo. Puoi costruirne uno tuo.

La suddivisione del codice in moduli semplifica il test, il debug e la comprensione. Consente inoltre di riutilizzare la logica in diversi programmi. Diamo un’occhiata a come prendere uno script monolitico e trasformarne una parte in una funzione portabile.

Estrarre la logica da un monolite

Considera questo programma C. Riempie un array con numeri casuali, li ordina utilizzando un algoritmo di ordinamento a bolle e stampa i risultati.

La logica di ordinamento qui è sepolta all’interno di “main”. Per renderlo riutilizzabile, dobbiamo estrarre il bubble sort.

Creazione di una funzione di base

In questo esempio l’array “a” e la costante “MAX” sono globali. Ciò significa che la funzione di ordinamento non ha strettamente bisogno di parametri per accedervi. Tuttavia, la buona pratica impone di utilizzare variabili locali per i contatori del ciclo (x, y, t ) per mantenere la funzione autonoma.

Ecco il codice rifattorizzato. Abbiamo isolato la logica di ordinamento in “bubble_sort”.

Passi il numero di elementi a “bubble_sort” anziché a “MAX” come hardcoding. Funziona. Ma è ancora legato all’array globale “a”.

Generalizzare per una vera riusabilità

Una funzione è veramente riutilizzabile solo se non dipende dallo stato globale. Possiamo generalizzare ulteriormente bubble_sort passando l’array stesso come parametro.

Cambia la firma della funzione in:

Questo dice al compilatore di accettare un array di numeri interi di qualsiasi dimensione. Il corpo di “bubble_sort” non cambia. Basta aggiornare la chiamata in “main”:

Tieni presente che non utilizziamo &a nella chiamata di funzione. Potresti aspettarti di passare l’indirizzo perché l’ordinamento modifica l’array, ma in C gli array decadono in puntatori quando

Попередня статтяRoku Streaming Stick: spiegazione delle versioni MHL e HDMI
Наступна статтяCome la televisione si è evoluta dai raggi catodici agli schermi digitali ad alta definizione