Advertentie
Leren programmeren is een cumulatieve ervaring. Naast het leren van de syntaxis van de door u gekozen taal, moet u ook de algemene principes leren die alle programmeertalen gebruiken.
Het begrijpen en leren van C-programmering kan ontmoedigend zijn, maar er zijn een paar basisideeën die het waard zijn om vertrouwd te raken wanneer u begint. Een eenvoudig project is een geweldige manier om de basisprincipes van C.
Dus waar moet je beginnen? Door hallo te zeggen!
1. Hallo Wereld!
Het eerste deel van bijna elke codeercursus is de Hallo Wereld programma. Als u het in detail doorneemt, worden enkele van de manieren waarop C verschilt van andere talen, belicht. Open om te beginnen een teksteditor of IDE Teksteditors vs. IDE's: welke is beter voor programmeurs?Kiezen tussen een geavanceerde IDE en een eenvoudigere teksteditor kan moeilijk zijn. We bieden wat inzicht om u te helpen die beslissing te nemen. Lees verder naar keuze en voer deze code in:
#erbij betrekken /* dit is een Hello World-script in C */ int hoofd (void) { printf("Hallo wereld! \N"); retourneer 0; }
Dit korte stukje code wordt naar de console afgedrukt voordat het programma wordt beëindigd. Bewaar het ergens gemakkelijk te onthouden als hallo.c. Nu moet u uw bestand compileren en samenstellen.
Het laten draaien
Meestal hoeft u geen extra software op uw computer te installeren om C-scripts uit te voeren. Open een terminalvenster (of opdrachtprompt als u Windows gebruikt) en navigeer naar de map waarin u uw script hebt opgeslagen.
De manier waarop u uw bestand compileert en uitvoert, verschilt van systeem tot systeem:
- Windows-gebruikers: Maak uw bestand uitvoerbaar door te typen cl hallo.c en druk op enter. Hiermee wordt hello.exe in dezelfde map gemaakt, die u kunt uitvoeren door te typen Hallo.
- Linux- en macOS-gebruikers: Type gcc -o hallo hallo.c en druk op enter om het uitvoerbaar te maken, en voer het uit door te typen ./Hallo.
Welke methode u ook gebruikt, het uitvoeren van uw script zou u dit moeten laten zien:
Als het niet werkt op Windows, zorg er dan voor dat u de opdrachtprompt in beheerdersmodus. Voor macOS moet u mogelijk Xcode installeren vanuit de App Store en volg deze stappen van StackOverflow.
Laten we nu regel voor regel naar het programma kijken om te zien hoe het werkt en om het te verbeteren!
Onder de motorkap: de C-taal begrijpen
Preprocessors
Het script dat u zojuist hebt gemaakt, begint met het opnemen van een bibliotheek.
#erbij betrekken
De eerste regel in het script heet a preprocessor. Dit wordt uitgevoerd voordat de rest van het script wordt gecompileerd. In dit geval vertelt het het script om de. te gebruiken stdio.h bibliotheek. Er is een enorm aantal preprocessors beschikbaar voor verschillende taken.
Stdio.h zorgt voor invoer van de gebruiker van het programma en voor het terugsturen van informatie naar hen.
/* dit is een Hello World-script in C */
Deze volgende regel is een opmerking. De schuine streep en ster vertellen de compiler om alles tussen de slash en de afsluitende ster en schuine streep te negeren. Hoewel dit misschien zinloos lijkt, is het een essentiële gewoonte om jezelf en anderen duidelijke notities te geven over wat je code doet.
De belangrijkste functie:
int hoofd (void)
Elk C-programma moet een. hebben hoofd functie. Main is een functie die een geheel getal retourneert, aangeduid met int. De haakjes na main zijn voor de argumenten, maar in dit geval is er geen nodig, daarom gebruik je de leegte trefwoord.
De uit te voeren code schrijf je tussen twee accolades.
{ printf("Hallo wereld! \N"); retourneer 0; }
Binnen de functie roep je de. aan printf() functie. Net als hoofd(), printf is een functie. Het verschil is dat printf een functie is in de standaard bibliotheek die u aan het begin hebt opgenomen.
Printf drukt alles tussen de haakjes, tussen de aanhalingstekens, af naar de console. De \N is een ontsnappingsreeks genaamd newline, die de compiler vertelt om naar de volgende regel in de console te gaan voordat hij verder gaat.
Merk op dat deze regels eindigen op puntkomma's, die de compiler gebruikt om de ene taak van de volgende te splitsen. Let goed op deze puntkomma's - ze missen is de belangrijkste oorzaak van dingen die niet goed gaan!
Ten slotte keert de functie terug met het cijfer 0, waarmee het programma wordt beëindigd. De hoofd() functie moet altijd een geheel getal retourneren, en retour = 0; signalen naar de computer dat het proces is gelukt.
Het begrijpen van elke stap van dit script is een goed begin bij het leren van zowel de C-syntaxis als hoe de taal werkt.
2. Uw eigen C-functies maken
U kunt uw eigen aangepaste functies maken in C. In plaats van Hello World in de hoofdfunctie af te drukken, maakt u een nieuwe functie om dit voor u te doen.
ongeldig print_for_me() { printf("Hallo wereld! \N"); }
Laten we dit opsplitsen.
leegte is een sleutelwoord wat betekent dat de volgende functie niets zal retourneren.
print_for_me() is de naam van de functie, en de lege haakjes laten zien dat er geen argumenten nodig zijn om te werken. Een argument is elk stukje informatie om door te geven aan een functie om het te laten werken - later zul je een eigen argument toevoegen om de uitvoer te veranderen! Opmerking: Dit is niet hetzelfde als de functie main() waarboven void werd gebruikt. Die functie kan geen argumenten aannemen, terwijl deze dat wel kan (maar in dit geval niet hoeft).
Het codeblok zou u bekend moeten zijn - het is gewoon de afdrukopdracht van de oorspronkelijke hoofdfunctie.
Nu kunt u deze functie aanroepen vanuit uw hoofdfunctie.
int hoofd (void) { print_for_me(); print_for_me(); retourneer 0; }
U ziet hier een voordeel van het gebruik van uw eigen functie. In plaats van te typen printf(“Hallo, wereld! \N") elke keer kunt u de functie twee keer aanroepen.
Op dit moment lijkt dit misschien niet zo belangrijk, maar als je print_for_me-functie veel regels code bevat, is het een geweldige tijdsbesparing als je het zo gemakkelijk kunt aanroepen!
Dit is een fundamenteel idee van programmeren dat je tijdens je hele opleiding tegenkomt. Schrijf uw eigen functie één keer, in plaats van steeds dezelfde grote stukken code te schrijven.
3. Functieprototypes gebruiken in C
Prototypes zijn een van de belangrijkste manieren waarop beginner C verschilt van andere talen. Kortom, een prototype is een soort voorbeeld van een later gedefinieerde functie. Als u de functie print_for_me() achter de hoofdfunctie schrijft, kunt u een waarschuwing krijgen bij het compileren:
Het waarschuwingsbericht vertelt u dat de compiler de functie print_for_me tegenkwam voordat deze werd gedeclareerd, dus het kon er niet zeker van zijn dat het correct zou werken wanneer het programma wordt uitgevoerd.
De code zou nog steeds werken, maar de waarschuwing kan helemaal worden vermeden door een prototype te gebruiken.
#erbij betrekken ongeldig print_for_me(); int hoofd (void) { print_for_me(); print_for_me(); retourneer 0; } ongeldig print_for_me() { printf("Hallo wereld! \N"); }
Door naar het volledige programma te kijken, kunt u zien dat het prototype voor print_for_me() aan het begin van het programma bestaat, maar niets bevat. De prototypefunctie laat de compiler zien hoe de functie eruit zou moeten zien en of er argumenten voor nodig zijn of niet.
Dit betekent dat wanneer u het in de hoofdfunctie aanroept, de compiler weet of het correct wordt aangeroepen en een waarschuwing of fout kan geven als dat nodig is. Dit is misschien iets dat nu vreemd lijkt, maar als u er nu over weet, zal dit in de toekomst helpen.
Dit programma werkt nog steeds zonder prototype, maar het is een goede gewoonte om te gebruiken. De uitvoer ziet er voorlopig nog hetzelfde uit, laten we het veranderen om het persoonlijker te maken!
4. Argumenten doorgeven aan C-functies
Het script wijzigen
Voor deze laatste stap vraagt u om de naam van de gebruiker en noteert u hun invoer. Dan gebruik je het in de functie die je eerder hebt gemaakt. In C staan woorden niet bekend als strings zoals in andere programmeertalen.
In plaats daarvan zijn het een reeks afzonderlijke tekens. Het symbool voor een array is [] en het sleutelwoord is char. Begin met het bijwerken van uw prototypefunctie aan het begin van uw script:
#erbij betrekken ongeldig print_for_me (char naam []);
Nu weet de compiler dat de functie verderop in het script een reeks tekens nodig heeft met de naam naam. Tot nu toe bestaat dit personage niet. Werk uw hoofdfunctie bij om deze te maken en gebruik deze om de gebruikersinvoer op te slaan:
int hoofd (void) { char naam [20]; printf("Voer naam in: "); scanf("%s", naam); print_for_me (naam); print_for_me("Iedereen!"); retourneer 0; }
De eerste regel in main creëert een tekenreeks met 20 mogelijke spaties genaamd naam. Vervolgens wordt de gebruiker gevraagd om zijn naam in te voeren met printf. De volgende regel gebruikt een nieuwe functie genaamd scanf die het volgende woord nodig heeft dat de gebruiker typt.
De "%s" vertelt de functie dat het de gegevens als een tekenreeks moet opslaan, en roept het naam.
De functie wijzigen
Wanneer u nu print_for_me aanroept, kunt u opnemen naam in de haakjes. Op de volgende regel ziet u dat u ook andere tekens kunt doorgeven, zolang ze maar tussen aanhalingstekens staan. Beide keren wordt wat tussen haakjes staat doorgegeven aan de functie print_for_me.
Pas dat nu aan om de nieuwe informatie die u geeft te gebruiken:
void print_for_me (char naam []) { printf("Hallo, "); zet (naam); }
Hier kun je zien dat de haakjes zijn bijgewerkt, net als het prototype aan het begin van het script. Binnenin print je nog steeds hallo met printf. Een nieuwe functie hier is zet'. Dit is een meer geavanceerde versie van printf.
Alles wat tussen haakjes wordt geplaatst, wordt naar de console afgedrukt en een nieuwe regel (de \N die u eerder gebruikte) wordt automatisch toegevoegd.
Bewaar en compileer uw code op dezelfde manier als eerder - houd er rekening mee dat u het programma een andere naam kunt geven als u uw eerdere programma niet wilt overschrijven. ik noemde de mijne hallo2:
Zoals u zou moeten zien, neemt het programma de invoer en gebruikt deze in de functie, voordat de vooraf ingestelde begroeting van "Iedereen!" opnieuw twee afzonderlijke uitgangen aan dezelfde functie gevend.
Het ABC van C-programmering
Dit programma is eenvoudig, maar sommige concepten zijn dat niet. Meer geavanceerde C-code moet heel goed worden geschreven om crashes te voorkomen. Dit is waarom velen denken dat het een uitstekende taal om eerst te leren omdat het nieuwe programmeurs goede gewoonten bijbrengt.
Anderen denken dat het leren van C++ een beter idee is, omdat het voortbouwt op C met behoud van de lagere systeemcontrole. (Er is ook Rust om te overwegen - het is een spannende programmeertaal dat is syntactisch vergelijkbaar met C++.)
Een ding is zeker: talen zoals Python zijn veel beginnersvriendelijker. Voor een oude taal wordt C nog steeds overal gebruikt, maar Python is misschien wel de taal van de toekomst 6 redenen waarom Python de programmeertaal van de toekomst isWil je je programmeervaardigheden leren of uitbreiden? Dit is waarom Python de beste programmeertaal is om dit jaar te leren. Lees verder !
Ian Buckley is een freelance journalist, muzikant, performer en videoproducent en woont in Berlijn, Duitsland. Als hij niet aan het schrijven of op het podium staat, sleutelt hij aan doe-het-zelf-elektronica of code in de hoop een gekke wetenschapper te worden.