Alweer geen Excel

Wat hebben we gedaan, wat gaan we doen?

Arnout van Kempen schrijft in deze rubriek over pret maken met computers. Hij gooit het na een reeks over Pascal over een andere boeg en gaat aan de slag met C.

Wat we gaan doen is simpel: min of meer georganiseerd leren hoe een computer werkt, hoe programmeren werkt en daarbij pret hebben. Ik heb een programma in gedachten en daar kan op alle manieren van afgeweken worden. Als je vragen hebt, over de computer, over programmeren, over C, dan stel je die. Als ik kan, ga ik er op in en dan zien we weer verder.

Wat hebben we de vorige stap gedaan? We voerden dit programma in:

#include <stdio.h>

int main() {
   printf(“Hallo wereld\n”);
   return 0;
}

en voerden het uit met het driehoekje+tandwieltje. Dat was niet ideaal. Gebruik liever het driehoekje zonder tandwieltje. Dat is "uitvoeren" in plaats van "uitvoeren met debugger". Dat scheelt in op dit moment overbodige tekst. En je output komt nu in het terminal-scherm, in plaats van het debug console scherm.

Deze tekst, code in C, is leesbaar voor een mens en leesbaar voor de compiler. Het is niet direct leesbaar als uitvoerbare code, daar zorgt de compiler voor. Als je je programma bijvoorbeeld test.c hebt genoemd, dan zal je in de folder waarin je werkt naast test.c ook een bestand test, of bij windows test.exe, zien. Dat is het echte, uitvoerbare programma.

Om te begrijpen hoe een computer werkt, en ook de C compiler, is het goed je te realiseren dat een computer niets interpreteert. De machine doet wat jij zegt dat deze moet doen. Ook als dat fout is, dan wordt jouw fout gewoon uitgevoerd. Als het fout gaat, kan het bij een simpel programma dus handig zijn om de denklijn van de computer te volgen: EXACT nagaan wat er staat en wat er dus gebeurt. Niet wat je bedoelde, niet "dat is toch wel duidelijk?!?" Maar exact. Laten we dat voor ons simpele programma doen.

#

Dit is een teken dat de compiler zegt: nu volgt een compiler-instructie. Dat wordt dus niet zo vertaalt naar je programma, maar is puur voor de compiler zelf bedoeld.

include

Dit betekent: voeg een bestand met C code in mijn code in. Waarom zou je dat willen? Bijvoorbeeld omdat C in de kaalste versie maar vrij weinig commando's kent. Veel commando's die wel tot C behoren, zijn niet standaard beschikbaar. Ze staan gedefinieerd in een "header file". Je kan dat zien als een keuken. Basis C is een aanrecht met dichte kastjes. De header files zijn keukenlades. Je trekt die lades open, die je nodig hebt bij wat je vandaag gaat maken. In de lade zit veel meer dan je nu nodig hebt, maar als je die lade dicht laat, wordt koken van je gerecht vandaag best lastig. C kent lades voor wiskundige bewerkingen, voor input en output, voor rekenen met tijd en datum, en nog veel meer.

<stdio.h>

stdio.h is de header file voor Standard Input Output. Het is de keukenla met allerlei commando's om iets op je beeldscherm te krijgen of gegevens van je toetsenbord te ontvangen et cetera. Aangezien je erg vaak wilt dat een programma iets op het scherm zet, zal je deze header erg vaak willen toevoegen. Maar zo niet, laat je deze lade dicht.

Vervolgens zie je een lege regel. C maakt zich niet druk om lege regels, tabs of spaties. Die gebruiken we puur om de tekst voor onszelf leesbaar te houden. Andere talen gebruiken spaties (Python), of bijvoorbeeld regelnummers (Basic) om structuur aan te brengen. C gebruikt de ; en de { en de }. Een programma-regel wordt vrijwel altijd afgesloten met een ; en als je een samenhangend programmablok wil aangeven, dan plaats je het tussen { en }.

Waarom geen ; achter de #include <stdio.h>? Omdat dat een compiler directive is, en geen programma-code.
Over het programma zelf gaan we volgende keer verder.

Arnout van Kempen is naast computernerd ook directeur compliance & risk bij aaff. Hij schrijft op persoonlijke titel.

Gerelateerd

reacties

Reageer op dit artikel

Spelregels debat

    Aanmelden nieuwsbrief

    Ontvang elke werkdag (maandag t/m vrijdag) de laatste nieuwsberichten, opinies en artikelen in uw mailbox.

    Bent u NBA-lid? Dan kunt u zich ook aanmelden via uw ledenprofiel op MijnNBA.nl.