C is barebones van ontwerp. Het regelt de absolute essentie en laat de rest aan u over. Er zijn geen ingebouwde toetsenbordinvoer of schermuitvoer. Als je tekst wilt weergeven, heb je externe hulpmiddelen nodig. Dat is waar C-programmeerbibliotheken in beeld komen. Het zijn stukjes herbruikbare code die de basismogelijkheden van de taal uitbreiden.

Beschouw ze als plug-ins voor uw logica. De standaard stdio -bibliotheek verwerkt invoer en uitvoer. Anderen beheren wiskunde, tekenreeksen of tijd. Als u ze gebruikt, wordt uw project opgedeeld in beheersbare modules. Dit maakt het debuggen eenvoudiger. Je kunt er ook werkende code mee uit oude projecten halen en deze in nieuwe projecten plaatsen.

Waarom modulaire code belangrijk is

Alles in één bestand schrijven wordt snel rommelig. Je krijgt uiteindelijk honderden regels die moeilijk te volgen zijn. Bibliotheken lossen dit op door functionaliteit te isoleren. Je test een enkele functie. Je verifieert dat het werkt. Dan ga je verder.

Het resultaat is schonere code. Het is ook veiliger. Als er een bug optreedt, weet u precies welke module u moet controleren. Je jaagt niet door een monolithisch script.

Voorbeeld: willekeurige sortering opnieuw bepalen

Laten we eens kijken naar een praktisch voorbeeld. Stel je een programma voor dat willekeurige getallen genereert, sorteert en afdrukt. De initiële code ziet er misschien uit als een warboel.

Hiermee wordt een array gevuld met willekeurige waarden. Vervolgens wordt een bellensoort toegepast. Ten slotte wordt de gesorteerde lijst afgedrukt. Het werkt. Maar het is niet herbruikbaar. De sorteerlogica is hardgecodeerd. De arraygrootte staat vast. U kunt het sorteeralgoritme of de gegevensbron niet eenvoudig omwisselen.

Stap 1: Pak de sorteerfunctie uit

De eerste stap op weg naar een bibliotheek is extractie. Neem de bellensorteerlus en verander deze in een functie. Omdat de array ‘a’ en de constante ‘MAX’ globaal zijn in dit fragment, heeft de functie hiervoor geen parameters nodig. Er hoeft ook geen waarde te worden geretourneerd.

Let op de parameters. De functie neemt nu m, het aantal elementen. Dit maakt het flexibel. U kunt een array van 10 items sorteren. Of een array van 100. Je geeft gewoon de maat door.

De hoofdfunctie wordt eenvoudiger. Het vult de array. Het roept de soort aan. Het resultaat wordt afgedrukt.

Dit is beter. Maar het is nog steeds gebonden aan de globale array ‘a’. Wat als u een andere array wilt sorteren? Of gegevens doorgeven uit een andere module?

Stap 2: Generaliseren voor echte herbruikbaarheid

Om dit echt bibliotheekklaar te maken, geeft u de array zelf door als parameter. Wijzig de functiehandtekening.

Dit vertelt de compiler dat hij een array met gehele getallen van elke grootte moet accepteren. Het lichaam van de functie verandert niet. U geeft de gegevens gewoon door aan de logica in plaats van te vertrouwen op de mondiale toestand.

De aanroep in ‘main’ wordt enigszins bijgewerkt. U geeft de arraynaam a en de grootte ervan MAX door.

Gebruik geen &a. Je zou kunnen denken dat je een verwijzing naar de hele array nodig hebt. Dat doe je niet. In C vervallen arraynamen in verwijzingen naar hun eerste element wanneer ze worden doorgegeven aan functies. Om dit onderscheid te begrijpen zijn aanwijzingen nodig. Maar weet voor nu dat ‘a’ voldoende is.

Waarom deze structuur wint

Jij