Wil je beginnen met programmeren, maar ben je niet zeker van C?  Probeer deze C-tutorial voor beginners om te controleren of dit de taal voor u is.

Hoe C te programmeren met dit beginnersproject

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-programmeren kan ontmoedigend zijn, maar er zijn een paar basisideeën die het waard zijn om vertrouwd te raken met het starten.

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-programmeren kan ontmoedigend zijn, maar er zijn een paar basisideeën die het waard zijn om vertrouwd te raken met het starten. Een eenvoudig project is een geweldige manier om de basisprincipes van C te leren.

Dus waar moet je beginnen? Door hallo te zeggen!

1. Hallo wereld!

Het eerste deel van bijna elke codeercursus is het hallo wereldprogramma . Als u er in detail op ingaat, worden enkele manieren benadrukt waarop C verschilt van andere talen. Open om te beginnen een teksteditor of IDE-teksteditors versus IDE's: welke is beter voor programmeurs? Tekstverwerkers versus IDE's: welke is beter voor programmeurs? Kiezen tussen een geavanceerde IDE en een eenvoudiger teksteditor kan moeilijk zijn. We bieden enig inzicht om u te helpen die beslissing te nemen. Lees meer van uw keuze en voer deze code in:

 #include /* this is a Hello World script in C */ int main(void) { printf("Hello, World! \n"); return 0; } 

Dit korte stukje code wordt afgedrukt op de console voordat het programma wordt beëindigd. Bewaar het op een plek die gemakkelijk te onthouden is als hallo . C. Nu moet u uw bestand compileren en bouwen.

Laat het draaien

Gewoonlijk 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 ga 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 cl hello.c te typen en op enter te drukken. Hiermee wordt hello.exe in dezelfde map gemaakt, die u kunt uitvoeren door hello te typen.
  • Linux- en macOS-gebruikers: typ gcc -o hello hello.c en druk op enter om het uitvoerbaar te maken en voer het uit door ./hello te typen.

Welke methode u ook gebruikt, het uitvoeren van uw script moet u dit laten zien:

Uitvoer met de resultaten van een Hello World! schets in C

Als het niet werkte op Windows, zorg er dan voor dat u de opdrachtprompt uitvoert in de beheerdersmodus. Voor macOS moet u mogelijk Xcode installeren vanuit de App Store en deze stappen volgen vanuit StackOverflow.

Laten we nu het programma regel voor regel bekijken om te zien hoe het werkt en het verbeteren!

Under the Hood: Understanding the C Language

preprocessors

Het script dat u zojuist hebt gemaakt, begint met het opnemen van een bibliotheek.

 #include 

De eerste regel in het script wordt een preprocessor genoemd . Dit wordt uitgevoerd voordat de rest van het script wordt gecompileerd. In dit geval vertelt het het script om de stdio.h- bibliotheek te gebruiken. Er zijn een groot aantal preprocessors beschikbaar voor verschillende taken.

Stdio.h zorgt voor invoer van de gebruiker van het programma en voert informatie naar hen terug.

 /* this is a Hello World script in C */ 

Deze volgende regel is een opmerking. De schuine streep en de ster vertellen de compiler om alles tussen deze en de sluitende ster en schuine streep te negeren. Hoewel dit zinloos lijkt, is het een essentiële gewoonte om jezelf en anderen duidelijke opmerkingen te laten over wat je code doet.

De hoofdfunctie

 int main(void) 

Elk C-programma moet een hoofdfunctie hebben. Main is een functie die een geheel getal retourneert, aangegeven met int . De haakjes na hoofd zijn voor de argumenten, hoewel in dit geval er geen nodig is, daarom gebruikt u het lege zoekwoord.

U schrijft de uit te voeren code tussen twee accolades.

 { printf("Hello, World! \n"); return 0; } 

In de functie roept u de functie printf () aan. Net als main () is printf een functie. Het verschil is dat printf een functie is in de stdio- bibliotheek die u aan het begin hebt opgenomen.

Printf print alles tussen haakjes, tussen de aanhalingstekens, naar de console. De \ n is een escape-reeks met de naam newline, die de compiler vertelt om naar de volgende regel in de console te gaan voordat hij verdergaat.

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 functie main () moet altijd een geheel getal retourneren en return = 0; signalen aan de computer dat het proces succesvol was.

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. Creëren van uw eigen C-functies

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 het voor u te doen.

 void print_for_me() { printf("Hello, World! \n"); } 

Laten we dit afbreken.

void is een trefwoord, wat betekent dat de volgende functie niets retourneert.

print_for_me () is de naam van de functie en de lege haakjes geven aan dat er geen argumenten nodig zijn om te werken. Een argument is elk stukje informatie dat moet worden doorgegeven aan een functie om het te laten werken - later voegt u een eigen argument toe om de uitvoer te wijzigen! Opmerking: dit is niet hetzelfde als de main () -functie waarboven void gebruikt. Die functie kan geen argumenten aannemen, maar deze wel (maar in dit geval niet).

Het codeblok zou u bekend moeten zijn - het is gewoon de afdrukopdracht van de oorspronkelijke hoofdfunctie.

Nu kunt u deze functie vanuit uw hoofdfunctie oproepen.

 int main(void) { print_for_me(); print_for_me(); return 0; } 

U kunt hier een voordeel zien van het gebruik van uw eigen functie. In plaats van printf ("Hallo, Wereld! \ N") elke keer te typen, 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 om het zo gemakkelijk te kunnen bellen!

Hallo wereld output tweemaal via meerdere functie-oproepen

Dit is een fundamenteel idee van programmeren dat je tijdens je opleiding tegenkomt. Schrijf een keer je eigen functie, in plaats van steeds dezelfde grote stukken code te schrijven.

3. Het gebruik van functieprototypes 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, krijgt u mogelijk een waarschuwing bij het compileren:

Samengestelde afbeelding met code zonder prototype en de waarschuwing die de c-compiler geeft

Het waarschuwingsbericht vertelt u dat de compiler de print_for_me-functie heeft gebruikt voordat deze werd gedeclareerd, dus het kon niet zeker 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.

 #include void print_for_me(); int main(void) { print_for_me(); print_for_me(); return 0; } void print_for_me() { printf("Hello, World! \n"); } 

Als u naar het volledige programma kijkt, ziet u dat het prototype voor print_for_me () aan het begin van het programma bestaat, maar niets bevat. De prototype-functie laat de compiler zien hoe de functie eruit moet zien, en of het argumenten vereist 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 nu kennis van hen hebben zal in de toekomst helpen.

Hallo wereld output tweemaal via meerdere functie-oproepen

Dit programma werkt nog steeds zonder een prototype, maar ze zijn een goede gewoonte om te gebruiken. De output ziet er voorlopig nog steeds hetzelfde uit, laten we hem veranderen om hem persoonlijker te maken!

4. Argumenten doorgeven aan C-functies

Het script wijzigen

Voor deze laatste stap vraagt ​​u naar de naam van de gebruiker en neemt u de invoer op. Vervolgens gebruik je het in de functie die je eerder hebt gemaakt. In C staan ​​woorden niet bekend als tekenreeksen zoals in andere programmeertalen.

In plaats daarvan zijn ze een reeks afzonderlijke tekens. Het symbool voor een array is [] en het trefwoord is char . Begin met het bijwerken van uw prototype-functie aan het begin van uw script:

 #include void print_for_me(char name[]); 

Nu weet de compiler dat de functie later in het script een reeks tekens bevat die naam worden genoemd . Tot nu toe bestaat dit personage niet. Update uw hoofdfunctie om deze te maken en gebruik deze om de gebruikersinvoer op te slaan:

 int main(void) { char name[20]; printf("Enter name: "); scanf("%s", name); print_for_me(name); print_for_me("Everyone!"); return 0; } 

De eerste hoofdregel maakt een reeks tekens met 20 mogelijke spaties, naam genoemd. 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 neemt dat de gebruiker typt.

De "% s" vertelt de functie dat de gegevens als een string moeten worden opgeslagen en de naam moeten worden genoemd .

De functie wijzigen

Wanneer u nu print_for_me aanroept, kunt u naam tussen haakjes opnemen. Op de volgende regel ziet u dat u ook andere tekens kunt doorgeven, zolang deze tussen aanhalingstekens staan. Beide keren wordt wat tussen haakjes staat doorgegeven aan de functie print_for_me.

Wijzig dat nu om de nieuwe informatie te gebruiken die u eraan geeft:

 void print_for_me(char name[]) { printf("Hello, "); puts(name); } 

Hier kunt u 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 tussen de haakjes wordt afgedrukt naar de console en er wordt automatisch een nieuwe regel toegevoegd (de \ n die u eerder gebruikte).

Sla uw code op en compileer deze 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 heb mine hello2 genoemd :

Het voltooide programma in C

Zoals u zou moeten zien, neemt het programma de invoer en gebruikt het in de functie, voordat het de vooraf ingestelde groet van "Iedereen!" Opnieuw verzendt en twee afzonderlijke uitgangen geeft aan dezelfde functie.

De ABC's van C-programmering

Dit programma is eenvoudig, maar sommige concepten erin zijn dat niet. Meer geavanceerde C-code moet heel goed worden geschreven om crashes te voorkomen. Dit is de reden waarom velen denken dat het een uitstekende taal is om eerst te leren omdat het goede gewoonten inboezemt bij nieuwe programmeurs.

Anderen denken dat het leren van C ++ een beter idee is, omdat het voortbouwt op C terwijl het zijn lagere systeemcontrole behoudt. (Er is ook Rust om te overwegen - het is een spannende programmeertaal die syntactisch vergelijkbaar is met C ++.)

Eén ding is zeker: talen zoals Python zijn veel meer beginnersvriendelijk. Voor een oude taal wordt C nog steeds overal gebruikt, maar Python is misschien de taal van de toekomst 6 Redenen waarom Python de programmeertaal van de toekomst is 6 Redenen waarom Python de programmeertaal van de toekomst is Wil je je programmeervaardigheden leren of uitbreiden ? Dit is de reden waarom Python dit jaar de beste programmeertaal is om te leren. Lees verder !

Ontdek meer over: C, Codeerhandleidingen, Programmeren.