Comment créer des bibliothèques C réutilisables : un guide étape par étape

6

C est un langage minimaliste. Il vous donne l’essentiel de la programmation. Vous obtenez des variables, des boucles et un flux de contrôle. C’est tout. Si vous souhaitez lire à partir d’un clavier ou imprimer sur un écran, C n’a pas ces fonctions intégrées. Vous devez les écrire ou utiliser une bibliothèque.

C’est pourquoi les bibliothèques en C sont si critiques. Ce sont des morceaux de code que les programmeurs extraient de leurs projets pour les rendre réutilisables. Vous avez probablement utilisé la bibliothèque d’E/S standard, ou stdio, sans y penser. Mais au-delà de cela, il existe des bibliothèques pour les mathématiques, les chaînes et le temps. Vous pouvez construire le vôtre.

Diviser votre code en modules facilite le test, le débogage et la compréhension. Il vous permet également de réutiliser la logique dans différents programmes. Voyons comment prendre un script monolithique et en transformer une partie en une fonction portable.

Extraire la logique d’un monolithe

Considérez ce programme C. Il remplit un tableau de nombres aléatoires, les trie à l’aide d’un algorithme de tri à bulles et imprime les résultats.

La logique de tri ici est enfouie dans « main ». Pour rendre cela réutilisable, nous devons extraire le tri à bulles.

Création d’une fonction de base

Le tableau « a » et la constante « MAX » sont globaux dans cet exemple. Cela signifie que la fonction de tri n’a pas strictement besoin de paramètres pour y accéder. Cependant, les bonnes pratiques imposent d’utiliser des variables locales pour les compteurs de boucles (x, y, t ) afin de garder la fonction autonome.

Voici le code refactorisé. Nous avons isolé la logique de tri dans bubble_sort.

Vous transmettez le nombre d’éléments à bubble_sort au lieu de coder en dur MAX. Ça marche. Mais il est toujours lié au tableau global « a ».

Généraliser pour une véritable réutilisabilité

Une fonction n’est véritablement réutilisable que si elle ne dépend pas de l’état global. Nous pouvons généraliser davantage bubble_sort en passant le tableau lui-même comme paramètre.

Remplacez la signature de la fonction par :

Cela indique au compilateur d’accepter un tableau d’entiers de n’importe quelle taille. Le corps de bubble_sort ne change pas. Vous venez de mettre à jour l’appel dans main :

Notez que nous n’utilisons pas &a dans l’appel de fonction. Vous pourriez vous attendre à transmettre l’adresse car le tri modifie le tableau, mais en C, les tableaux se transforment en pointeurs lorsque

Попередня статтяRoku Streaming Stick : explication des versions MHL et HDMI
Наступна статтяComment la télévision a évolué des rayons cathodiques aux écrans numériques haute définition