Typage explicite
Considérons le programme C
#include <stdio.h>
typedef struct {
int x, y;
} Point2D;
typedef struct {
int x, y, z;
} Point3D;
void afficher(Point2D *p) {
printf("(%d, %d)", p->x, p->y);
}
int main() {
Point3D p;
p.x = 1, p.y = 2, p.z = 3;
afficher(&p);
return 0;
}
Dans la fonction main, on a
demandé explicitement que la
variable psoit de type Point3D. La
fonction afficher demande
l’existence des champs xet yde
son argument. Ces champs existent
dans pet cependant, ce code ne
compile pas.
En effet, même si une variable de
type Point3D semble pouvoir être
utilisée comme une variable de type
Point2D, ceci est impossible en C
qui est un langage à typage
explicite : le type de pa été fixé
lors de la déclaration de afficher.
51 / 263