Cómo crear bibliotecas C reutilizables: una guía paso a paso

8

C es un lenguaje minimalista. Le brinda los conceptos básicos de la programación. Obtienes variables, bucles y flujo de control. Eso es todo. Si desea leer desde un teclado o imprimir en una pantalla, C no tiene esas funciones integradas. Tienes que escribirlos o usar una biblioteca.

Por eso las bibliotecas en C son tan críticas. Son fragmentos de código que los programadores extraen de sus proyectos para hacerlos reutilizables. Probablemente hayas utilizado la biblioteca de E/S estándar, o stdio, sin pensarlo. Pero más allá de eso, existen bibliotecas para matemáticas, cadenas y tiempo. Puedes construir el tuyo propio.

Dividir su código en módulos hace que sea más fácil probarlo, depurarlo y comprenderlo. También le permite reutilizar la lógica en diferentes programas. Veamos cómo tomar un script monolítico y convertir una parte del mismo en una función portátil.

Extrayendo lógica de un monolito

Considere este programa en C. Llena una matriz con números aleatorios, los clasifica mediante un algoritmo de clasificación de burbujas e imprime los resultados.

La lógica de clasificación aquí está enterrada dentro de “principal”. Para que esto sea reutilizable, necesitamos extraer el tipo de burbuja.

Creando una función básica

La matriz a y la constante MAX son globales en este ejemplo. Esto significa que la función de clasificación no necesita estrictamente parámetros para acceder a ellos. Sin embargo, las buenas prácticas dictan el uso de variables locales para los contadores de bucle (x, y, t ) para mantener la función autónoma.

Aquí está el código refactorizado. Aislamos la lógica de clasificación en “bubble_sort”.

Pasa el número de elementos a bubble_sort en lugar de codificar MAX. Funciona. Pero todavía está vinculado a la matriz global “a”.

Generalizando para una verdadera reutilización

Una función sólo es verdaderamente reutilizable si no depende del estado global. Podemos generalizar aún más bubble_sort pasando la propia matriz como parámetro.

Cambie la firma de la función a:

Esto le dice al compilador que acepte una matriz de números enteros de cualquier tamaño. El cuerpo de bubble_sort no cambia. Simplemente actualiza la llamada en principal :

Tenga en cuenta que no usamos &a en la llamada a la función. Es posible que espere pasar la dirección porque la clasificación modifica la matriz, pero en C, las matrices se descomponen en punteros cuando

Попередня статтяRoku Streaming Stick: Explicación de las versiones MHL vs HDMI
Наступна статтяCómo evolucionó la televisión de los rayos catódicos a las pantallas digitales de alta definición