2021-02-19
slides.com/jod/pt_5d
Docent: Jo Devriendt
Assistent: Ann Philips
Coördinator: Joost Vennekens
voornaam.achternaam@kuleuven.be
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
lagere adressen
hogere adressen
instructies in de executable
heap
↓
...
↑
stack
statische data
command line argumenten
Daar ergens...
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
#include <stdio.h>
#define PI 3.14159
double omtrek(double r) {
return 2*PI*r;
}
double oppervlak(double r) {
return PI*r*r;
}
void main() {
double straal = 10;
double (*fptr)(double);
fptr=omtrek;
printf("Omtrek: %lf\n",
fptr(straal));
fptr=oppervlak;
printf("Oppervlak: %lf\n",
fptr(straal));
}Toekenning: naam van bestaande functie met gepast prototype
Declaratie:
output type
(*naam)
(types argumenten)
Oproep: zoals elke functie
Gedraagt zich zoals andere variabelen
Haakjes zijn belangrijk
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
#include <stdio.h>
#define N 5
void sorteer(int a[], int n, int (*cmp)(int, int)) {
// ...
}
int kleinerDan(int x, int y) {
return x<y;
}
int delerVan(int x, int y) {
return x%y==0;
}
void main() {
int a[N] = {6,5,4,3,2};
// ...
sorteer(a,N,delerVan);
// ...
sorteer(a,N,kleinerDan);
}Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021