Programmeren in C/Inhoudsopgave
Uiterlijk
- Inleiding
- Waarom C?
- Geschiedenis
- De compiler
- Wat is en doet een compiler? (preprocessor, linking, etc.)
- Hallo wereld
- Introductieprogramma demonstreert strings, functies en commentaar
- De verschillende statements
- GNU C Compiler
- Installatie (Windows)
- Installatie (Linux)
- Programma compileren en uitvoeren
- Foutmeldingen lezen
- Oefeningen:
- Foutmeldingen lezen
- Meerdere bestanden
- Bestanden uit verschillende mappen
- Meer informatie
- Variabelen
- Wat zijn variabelen?
- Naamgeving
- Definieren
- Const
- Waarde toewijzen (literals)
- Bereik van een variabele (scope)
- Conversie
- Oefeningen:
- Is dit een geldige variabelenaam? (keywords, ongeldige tekens, cijfers als eerste, spaties)
- Wat zijn variabelen?
- Wat is een datatype?
- (long, short) int, char
- Signed en unsigned
- (Floating points)
- String
- Speciale karakters (bijv. tabs, newlines en ")
- Afbreken en aan elkaar plakken van strings
- Hoe wordt het opgeslagen?
- 2s-complement signed integer
- Sizeof
- Oefeningen:
- Mag deze toewijzing?
- Mag deze conversie?
- Wat gaat er verloren bij deze conversie/wat is de waarde nu?
- Hoe wordt deze string afgedrukt? (speciale tekens)
- Meer informatie
- Functies aanroepen
- Wat is een functie?
- Void
- Zichtbaar maken (include)
- Aanroepen
- Math functies?
- Tekst weergeven
- Functie binnen een functie
- Bereik van een functie (scope)
- Recursie
- Static functions
- Variabele argumentenlijsten
- De main() functie
- Een eigen functie maken
- Variabele argumentenlijsten
- Programma: Van Farenheit naar Celcius
- Oefeningen:
- Wat is de waarde van (lokale variabelen)
- Meer informatie
- Wat is een functie?
- In-en uitvoer met de console
- Placeholder codes (%d)
- Formatting
- printf, scanf, puts, getch
- Meer informatie
- Operatoren, Exprssies
- Basisoperatoren
- Optellen, aftrekken, vermenigvuldigen, delen
- ++prefix, postfix++
- Operatorvolgorde
- Haakjes
- Oefeningen:
- Operatorvolgorde
- Haakjesgebruik
- Pre-en post optellen etc...
- Meer informatie
- Basisoperatoren
- Condities
- IF-statement
- Wat is waar (!= 0) en onwaar (== 0) in C
- Then
- Else
- Elseif
- Korte ifs (a == b ? c : d)
- Meerdere ifs, geneste ifs en haakjes
- Switch
- Break
- Vergelijkingen en logische operatoren
- ==, !=, <, >, <=, >= (niet =< of =>)
- &&, ||, !
- Haakjes en aaneenrijgen
- DeMorgan's law
- Oefeningen:
- Wat is de uitkomst van...
- Wat wordt er afgedrukt (korte en lange IFs)
- Curly haakjes if .. else verwarring
- Meer informatie
- IF-statement
- Arrays
- Arrays
- Definitie
- Werking
- Algemene toepassing op pointers
- String als array van characters
- Meerdimensionale arrays
- Oefeningen:
- ...
- Meer informatie
- Arrays
- Loops
- Soorten loops
- WHILE-loop
- DO-WHILE-loop
- FOR-loop
- Break en Continue
- Loop unraveling
- Oefeningen:
- Hoe vaak wordt X uitgevoerd...
- Meer informatie
- Soorten loops
- Pointers en arrays
- Wat is een pointer
- Pointers definieren
- Waarde toewijzen
- NULL
- Pointers naar pointers
- Pointer dereferencing
- Relatie pointer <-> array
- Pointers in functieargumenten
- Pointers en strings
- Sizeof van een pointer
- Pointer vrij maken (op NULL zetten)
- Operaties
- Adres van
- Rekenen met pointers
- Conversie
- Functiepointers
- Programma: Nette zinnen maken van input (hALlo wEreLD! -> Hallo wereld!)
- Oefeningen:
- Pointerrekenen
- Pointertypes
- Buffer overflow
- Meer informatie
- Wat is een pointer
- Bitsgewijze operatoren
- Wat doen bitsgewijze operatoren?
- &, |, ^, ~, <<, >>, <<<, >>>
- &=, |=, ~=, ^=, <<=, >>=
- D e waardetabellen
- Meer informatie
- Wat doen bitsgewijze operatoren?
- Floating point
- Wat is een floating point getal?
- float, double
- Notatie (1.0 i.p.v. 1)
- Hoe wordt het opgeslagen.
- Conversies
- Inexact. Hoe ermee rekenen.
- Oefeningen:
- Hoeveel is ??? (waarbij er bijv. exactheid wordt verloren).
- Is het volgende gelijk: ??? (waarbij twee berekeningen op het oog hetzelfde zijn, maar qua representatie niet)
- Meer informatie
- Wat is een floating point getal?
- Speciale dataconstructies
- Enum (equiv. aan meerdere defines)
- Gebruik in variabele
- Sizeof van een enum
- Struct
- Gebruik in variabele
- Sizeof van een struct
- Union
- Sizeof van een union
- Meer informatie
- Enum (equiv. aan meerdere defines)
- Geheugenbeheer
- Malloc, realloc, calloc, free
- Oefeningen:
- ...?
- Meer informatie
- Header files, includes en libraries
- Includes
- Header files
- Gebruik van dataconstructies en variabelen
- Dubbel invoegen
- Standard libraries
- ANSI C, C99 library verschillen
- Je eigen libraries
- Oefeningen:
- Welke include heb ik nodig voor functie X uit de standaardlibrary?
- Welke van de twee gelijknamige functies wordt gebruikt bij deze twee includes?
- Meer informatie
- Preprocessor
- Wat is een preprocessor directive?
- Schrijfwijze (#HOOFDLETTERS, geen ';')
- Defines, ifndef, defines via command line
- Macro's
- Voorgedefinieerde (__FILE__, __LINE__)
- Oefeningen:
- Wat is de resulterende C code (nadat de preprocessor z'n werk heeft gedaan)
- Meer informatie
- Wat is een preprocessor directive?
- File Input/output
- Streams
- Standaard streams
- Stream (FILE) operaties
- FILE pointers
- Open/close file
- FLush
- Set(V)buffer
- seek, tell, getpos, setpos
- rewind
- Error handling
- File operaties
- remove
- rename
- tmpfile
- tmpnam
- fgets
- fgetc
- formatted input
- Oefeningen:
- ...
- Meer informatie
- Netwerk I/O
- C code aanroepen vanuit een andere taal
- C++
- Assembler
- Java
- C#/VB.Net
- ...
- GOTO niet bespreken
- Referentie