C programmeertaal: Wat is het en wat kan je ermee?

De programmeertaal C wordt ook wel beschouwd als de moeder van alle programmeertalen. Programmeren in C werd vroeger veel gedaan en tegenwoordig nog steeds. Vroeger was C een lange tijd de meest populaire programmeertaal wereldwijd. Inmiddels is de programmeertaal C voorbijgestreefd door andere programmeertalen. Hier lees je onder andere wat C is en wat je ermee kan. Is C tegenwoordig nog steeds relevant om te leren? Daar kom je ook in dit artikel achter.

Ja, ik wil leren programmeren in C of misschien wel C++!

Wat is de programmeertaal C en wat kan je ermee?

Van 1985 tot 2001 was C de meeste populaire programmeertaal wereldwijd. Dat is natuurlijk niet voor niks zo geweest! Andere “hippere” hoge programmeertalen zijn C voorbijgegaan, maar C wordt nog steeds gebruikt door programmeurs en is nog populair. Wel in mindere mate dan vroeger.

De kinderen van C zijn hun moeder voorbijgestreefd. C wordt ook wel de moeder van alle programmeertalen genoemd, omdat veel programmeertalen zijn afgeleid van C of bepaalde elementen hebben overgenomen, zoals C++, Java en C#.

Eén van de reacties bij de bovenstaande YouTube video zegt eigenlijk alles:

Programmeertaal C goede moeder voor andere programmeertalen reactie YouTube

C staat ook wel bekend als een middle-level programmeertaal, omdat het tussen een lage en hoge programmeertaal in zit. Je kan met C systemen programmeren (Besturingssystemen), maar je kan bijvoorbeeld ook een game maken met C. C is een procedurele programmeertaal.

De programmeertaal C ligt dichtbij de machine en ook dichtbij de mens. Dit betekent dat machines C goed kunnen begrijpen en de programmeertaal is voor mensen leesbaar.

Als je met C wilt gaan leren programmeren, ga je beter het onderliggende proces begrijpen. Met C kan je bijvoorbeeld compilers maken. Hierdoor ga je begrijpen hoe je bijvoorbeeld een programmeertaal als Java compileert en begrijpbaar maakt voor een besturingssysteem, zodat het programma geschreven in Java daarop kan draaien.

Doordat veel programmeertalen afgeleid zijn van C, ga je deze programmeertalen ook makkelijker begrijpen, als je C beheerst. Echter is voor een beginner C wel een stuk lastiger dan bijvoorbeeld Python.

Onder andere de syntax van C is moeilijker te begrijpen dan een programmeertaal zoals Python. Ook moet je bijvoorbeeld in C zelf voor het geheugenmanagement zorgen, bij Python hoef je je daar helemaal niet druk om te maken. Python heeft een automatisch “garbage collector”.

Mogelijkheden met C

Maar wat kan je eigenlijk allemaal doen met C? We hebben al gelezen dat je een besturingssysteem, compiler en game kan bouwen. Hieronder staan nog meer voorbeelden van wat je allemaal kan bouwen en doen met C:

  • Database
  • Embedded systems, zoals een wekker en een magnetron
  • Text editor
  • Assembler
  • Robot programmeren
  • Virtual Machine
  • Internet of Things toepassingen
  • Netwerk applicaties

De mogelijkheden met C zijn heel groot! Hierboven staan maar enkele voorbeelden, maar je kan nog veel meer met C doen.

C logo

Voorbeelden van bedrijven die gebruik maken van de programmeertaal C

C is de moeder van alle programmeertalen en heeft zich al lang en breed bewezen. Toch hebben we dit hoofdstuk gemaakt, om te laten zien dat C nog steeds toonaangevend is in de wereld.

De grootste bedrijven ter wereld maken tegenwoordig nog steeds gebruik van de programmeertaal C. Dit doen ze al heel lang. Het geeft aan dat de programmeertaal nog steeds heel goed is.

We gaan kijken naar 3 hele grote bedrijven die gebruik maken van C.

Microsoft

Microsoft heeft het meeste gebruikte besturingssysteem wereldwijd voor computers ontwikkeld, namelijk Windows. Wie kent het niet? Je zal het zelf ook vast wel een keer gebruikt hebben en misschien nog steeds.

Een groot deel van de Windows kernel is geschreven in C. Microsoft blijft vertrouwen houden in de programmeertaal C. Het geeft wel aan hoe goed C nog is, als zo’n belangrijk onderdeel van het Windows besturingssysteem in C is geschreven.

Google

Weer zo’n megabedrijf. Als je Google niet kent, heb je wel zo’n 20 jaar onder een steen gelegen. Google heeft Android niet ontwikkeld, maar wel overgenomen. Tegenwoordig is Android nog steeds van Google.

Android is het meest gebruikte mobiele besturingssysteem wereldwijd. Net zoals bij Windows, is de kans groot dat je ooit gebruik hebt gemaakt van Android en nu misschien nog steeds.

De kernel van Android is ook geschreven in C. Google blijft vertrouwen houden in C, omdat de programmeertaal gewoon stabiel is en goed werkt.

Google logo

Apple

Apple is een andere gigant, de tegenhanger van Microsoft. macOS, het besturingssysteem van de Mac, is ontwikkeld door Apple.

Ook het grootste gedeelte van de macOS kernel is geschreven in C. De kernel is het hart van een besturingssysteem. Het geeft aan hoe krachtig C nog steeds is als de giganten Microsoft, Google en Apple er tegenwoordig nog gebruik van maken.

Dit waren maar enkele voorbeelden, maar C wordt nog steeds op grote schaal gebruikt, door zowel kleine als grote bedrijven. Uit de mogelijkheden uit het eerste hoofdstuk, kan je zien waar het nog allemaal voor wordt gebruikt hedendaags.

Apple logo

Voor- en nadelen van C

Ook al is C zo’n krachtige programmeertaal, toch heeft C net zoals elke programmeertaal zijn voor- en nadelen. Laten we positief beginnen en eerst gaan kijken naar de voordelen.

Voordelen

  • Niet moeilijk om te leren, syntax is goed te begrijpen
  • Built-in functions
  • C kan zorgen voor efficiëntere programma’s
  • Programma’s in C zijn sneller dan programma’s in andere programmeertalen
  • Gestructureerde programmeertaal
  • Flexibele programmeertaal, programma’s geschreven met C kunnen op elke computer draaien, zonder de code aan te passen
  • Inspiratie voor andere programmeertalen geweest en nog steeds
  • Snelle compiler
  • Makkelijker om nieuwe feature toe te voegen

Nadelen

  • Geen OOP (Objectgeoriënteerd programmeren) ondersteuning
  • Geen ondersteuning voor constructors
  • Geen namespace ondersteuning
  • Run-time type checking niet beschikbaar

Ja, ik wil leren programmeren in C of misschien wel C++!

Verschillen tussen C en C++

C is de moeder van C++. De programmeertaal C++ is gebaseerd op C. Het was de bedoeling om C++ beter te maken dan C, vandaar ook de ++ in de naam van C++.

C++ betekent dat de waarde van de variabele C met 1 wordt verhoogd, daar verwijst het ook naar. Voor programmeurs zal de ++ operator bekend zijn.

Natuurlijk zijn er verschillen tussen C en C++. Dit zijn enkele belangrijke verschillen:

  • C is niet object georiënteerd en C++ wel
  • C++ maakt wel gebruik van namespace en bij C is dat niet mogelijk
  • C heeft geen Exceptions en C++ wel
  • C ondersteunt geen function overloading en C++ wel
  • C++ is een hoge programmeertaal en C een middle-level programmeertaal
  • C ondersteunt alleen pointers en geen reference variables, C++ ondersteunt beiden
  • C++ ondersteunt inline functions en C niet

Dit zijn niet alle verschillen, maar wel belangrijke. Je ziet vooral dat C++ meer functionaliteiten heeft dan C. Dat was ook de bedoeling, om C++ beter te maken dan C.

Echter is het volgens veel experts wel verstandiger om eerst met C te beginnen. C++ is een stuk complexer. Als je goed kan programmeren met C, gaat je dat ook lukken met C++.

Nerd achter computer

C code voorbeelden

Het is altijd leuk om bij een programmeertaal naar code voorbeelden te kijken. Dan krijg je een beter beeld van de syntax van een programmeertaal. Programmeren in C doe je niet vanuit het niets en daarom is het handig om eerst naar voorbeelden te kijken.

We gaan het niet ingewikkeld maken. Er komen 3 eenvoudige code voorbeelden langs in C. We beginnen met het bekende “Hello World!” voorbeeld. Daarna komt er een voorbeeld van een if-else statement in C en een function.

De laatste 2 voorbeelden horen bij de basisonderdelen van het programmeren. In het e-book “Snelcursus Leren Programmeren” komen de basisonderdelen van het programmeren terug.

Als je nog niet veel programmeerervaring hebt, is het e-book “Snelcursus Leren Programmeren” zeker een aanrader!

Hello World!

#include <stdio.h>

int main() {
    printf("Hello World!");
    return 0;
}

Je ziet gelijk al dat er in C meer code nodig is voor deze simpele instructie dan bijvoorbeeld in Python. Echter zal dit er niet “schokkend” voor je uitzien als je al een beetje bekend bent met programmeertalen zoals Java en C#.

In de eerste regel wordt het “stdio.h” bestand (Library) opgenomen. In dit bestand staat de printf() function en deze function is nodig om “Hello World!” naar het scherm te verzenden.

Stel dat je niet het “stdio.h” bestand opneemt, maar wel de printf() function gebruikt, dan compileert het programma niet. Het “stdio.h” bestand wordt opgenomen door #include te gebruiken. Dit wordt ook wel een “Preprocessor command” genoemd. Het opnemen van bestanden wordt altijd aan het begin van een programma gedaan, in de eerste regels.

Elk programma geschreven in C moet een main() function hebben. Bij het uitvoeren van een C programma, wordt de main() function als eerste aangeroepen. De main() function kan je in verschillende vormen implementeren, zoals void main() en int main(). In dit voorbeeld gebruiken we int main().

Een puntkomma (;) in C is verplicht om elk statement af te sluiten. Als je een puntkomma vergeet achter een statement, compileert het programma niet.

Tot slot zie je in regel 5 return 0; staan. De main() function heeft een int als type en verwacht daarom een int waarde terug. We doen return 0; om de function en het programma te beëindigen.

If-else statement

#include <stdio.h>

int main() {
    int temperatuur = 31;
    
    if (temperatuur >= 30) {
        printf("Het is een tropische dag, denk eraan dat je genoeg drinkt!");
    } else {
        printf("Het is geen tropische dag.");
    }
    
    return 0;
}

Als je een if-else statement in C vergelijkt met andere programmeertalen, zoals Java en C#, ziet het er niet zo spannend uit. Het ziet er vrijwel hetzelfde uit en de werking komt op hetzelfde neer.

In regel 4 is er een variable (Variabele) aangemaakt. De variable heeft een int als data type en temperatuur is de naam van de variable. 31 is als waarde meegegeven aan de variable.

In een programmeertaal zoals Python en PHP hoef je geen data types te gebruiken. In C is het wel verplicht om een data type mee te geven bij het opstellen van een variable.

Het if-else statement is niet lastig. Als (If) de variable temperatuur groter of gelijk is aan 30, dan krijg je een bericht dat het een tropische dag is en je goed moet drinken.

Als de temperatuur niet groter of gelijk is aan 30 (Else), dan krijg je een bericht dat het geen tropische dag is. Als we dit programma zouden uitvoeren, komt eruit dat het een tropische dag is, zoals je waarschijnlijk al doorhad.

Function

#include <stdio.h>

void tropisch_checker(int temp) {
    if (temp >= 30) {
        printf("Het is een tropische dag, denk eraan dat je genoeg drinkt!");
    } else {
        printf("Het is geen tropische dag.");
    }
}

int main() {
    int temperatuur = 29;
    
    tropisch_checker(temperatuur);
    
    return 0;
}

Ook bij een function zie je weer goed dat het er hetzelfde uitziet als in veel andere programmeertalen. C is een inspiratie geweest voor veel programmeertalen en daarom zal C niet lastig zijn, als je al ervaring hebt met programmeren in bijvoorbeeld Java, C#, C++, PHP en/of JavaScript.

Het zou heel chaotisch zijn als je veel if-else statements in de main() function hebt staan. Het is veel netter om een if-else statement apart in een function te zetten en de function in main() aan te roepen. Vandaar ook het bovenstaande voorbeeld met het checken of de temperatuur tropisch is, maar dan in een function.

In regel 3 is de function tropisch_checker() aangemaakt. De function hoeft geen waarde terug te geven en heeft daarom void als type. In de function staat het if-else statement uit het vorige voorbeeld.

In tropisch_checker() zie je int temp als parameter staan, in regel 3. In de main() function in regel 12, zie je dat er een variable is aangemaakt temperatuur.

Deze variable wordt meegegeven als argument aan tropisch_checker(temperatuur) in regel 14, bij het aanroepen van de function. Hierdoor krijgt de parameter temp de waarde van de variable temperatuur.

temp staat in het if-else statement en zo kan de check plaatsvinden of het een tropische dag is.

Ga zelf aan de slag met de programmeertaal C of misschien wel C++

Wil jij gaan programmeren in C en er dieper induiken? Dan ben je hier aan het juiste adres! Hierboven heb je simpele voorbeelden voorbij zien komen, maar om echt meer over C te leren, is het verstandig om een goede cursus te volgen.

Als programmeren nog vrij nieuw voor je is, is het aan te raden om eerst het e-book “Snelcursus Leren Programmeren” te lezen. Hierin leer je de basis van het programmeren en daarna is het makkelijker om moeilijkere programmeertalen en -technieken te leren.

Op Pluralsight staan hele goede cursussen over programmeren in C, zowel voor beginners als gevorderden. Misschien wil je wel iets meer uitdaging en C++ leren? Dat kan ook zeker op Pluralsight.

Pluralsight logo

In “Pluralsight review en ervaringen” lees je meer over dit gave platform. Je kan het platform zelfs 10 dagen helemaal gratis uitproberen.

C is de moeder van alle programmeertalen en daarom is het heel gaaf om als programmeur C te kennen. Met kennis over C is het makkelijker om andere programmeertalen te leren en je weet ook beter hoe het onderliggende proces van een programmeertaal werkt.

Verder zou je met C bijvoorbeeld software kunnen schrijven voor robots, Internet of Things toepassingen en voor embedded systems, zoals een magnetron. Je zou bij bedrijven aan de slag kunnen die dit soort dingen doen. Dit zijn maar enkele voorbeelden, maar de mogelijkheden zijn nog veel groter met C en de programmeertaal leeft nog steeds!

C is nog steeds relevant om te leren. Verhoog je status als programmeur en leer programmeren met de programmeertaal C, de moeder van alle programmeertalen. Of ga een stapje verder en leer C++. Pak je kans!

Voor vragen en/of opmerkingen kan je hieronder een reactie achterlaten of contact opnemen.

Plaats een reactie