home | accès étudiants |
Considérons le programme suivant :
/*** fichier cercle.c ***/ #include <stdio.h> #define M_PI 3.141592; double perimetre(double rayon) { return 2 * M_PI * rayon; } double superficie(double rayon); { return M_PI * rayon * rayon; } int main(void) { double r, p; printf("\nentrer le rayon\n") while (scanf("%lf", &r) == 1) { p = perimeter(r); s = superficie(r); printf("rayon : %10.2f perimetre : %10.2f superficie : %10.2f\n", r, p, s); printf("\nentrer le rayon\n); } return 0; } /*** fin fichier cercle.c ***/
Sauvegarder le programme dans un fichier cercle.c. Compiler à l'aide de la commande
gcc -Wall cercle.c -o cercleObserver les messages d'erreur et d'avertissement du compilateur. Corriger les « fautes de frappe ».
Lancer l'exécutable. Entrer quelques valeurs (utiliser ctrl-D pour terminer).
La constante M_PI est déjà définie dans le fichier entête math.h. Utiliser cette définition.
Créer un fichier texte contenant quelques valeurs de r. Faire le programme lire son entrée depuis ce fichier.
Sauvegarder la sortie du programme dans un fichier.
étape | commande | fichier résultat |
---|---|---|
prétraitement | gcc -E cercle.c -o cercle.i | cercle.i |
compilation | gcc -S cercle.i | cercle.s |
assemblage | gcc -c cercle.s | cercle.o |
édition des liens | gcc cercle.o -o cercle | cercle |
Exécuter les deux premières étapes de traitement un par un. Ouvrir les fichiers cercle.i et cercle.s dans un éditeur de texte. Regarder vers la fin du fichier cercle.i. Que s'est-il passé avec la constante M_PI ?
Exécuter les deux dernières étapes. Les fichiers cercle.o et cercle sont-ils « lisibles » ? Inspecter ces fichiers à l'aide de la commande nm.