Next: Variables et types.
Up: Les bases du C.
Previous: Les bases du C.
Table des matières
Voici un code assez élémentaire:
#include <stdlib.h>
#include <stdio.h>
int main (int argc, char *argv[])
{
printf ("Hello World!\n");
return 3;
}
|
Sauvez ce programme sous le nom hello.c.
A présent, nous allons le compiler. [La compilation
est le processus de traduction du code C en instructions en langageassembler. Ces dernières
forment un code compréhensible par les CPUs qu'elles soient de type
AMD, Pentium, 80?86, SPARC, Alpha ou RS6000. L'exécutable binaire
qui résulte de la compilation est rapide car il est exécuté nativement
par le processeur qui est la puce principale se trouvant sur votre
carte-mère et qui va chercher hello dans
la mémoire, octet par octet, de sorte à en exécuter chaque instruction.
La vitesse d'exécution s'exprime en MIPS (millions
instructions per second). Le terme mégahertz
ou gigahertz caractérisant le matériel est trèsapproximativement le nombre de MIPS. Les langages
interprétés (comme les scripts de shell) sont beaucoup plus lents
car le code est écrit dans un langage qui n'est pas directement interprétable
par la CPU (code non-natif). /bin/bash
est lui-même écrit en C. L'exécution de scripts
en bash est plus lente de plusieurs ordres de grandeur que celle des
langages compilés. Les scripts de shell ne doivent pas être compilés].
Exécutez la commande:
gcc -Wall -o hello hello.c
|
L'option -o hello indique à gcc
[GNU C Compiler]de produire un fichier binaire nommé hello
au lieu du fichier binaire par défaut a.out
[ce nom a été attribué pour des raisons historiques].
L'option -Wall indique de faire un rapport
de toutes les alertes (all Warnings)
durant la compilation. Ceci n'est pas obligatoire mais cela s'avère
très utile pour corriger d'éventuelles erreurs dans les programmes.
Les options de compilation sont discutées au paragraphe 25.1.
Exécutez le programme:
Précédemment, nous nous sommes familiarisés avec les fonctions bash.
En C, tout le code est contenu dans une ou plusieurs fonctions.
La première qui est appelée par le système d'exploitation est la fonction
main. Tapez echo
$? pour voir le code de retour du programme. Vous verrez qu'il s'agit
de 3, la valeur return
de la fonction main.
D'autres points sont à noter: par exemple, le signe ''
entourant la chaîne qui doit être affichée à l'écran. Les guillemets
entourent toujours une chaîne littérale. A l'intérieur d'une chaîne
littérale, la séquence \n
indique un retour de chariot. ascii(7)
décrit en détail d'autres séquences. Vous noterez aussi la prolifération
de ; dans un programme en C. Chaque
instruction doit se conclure par un ; contrairement
aux scripts de shell où le signe ; est
optionnel.
A présent, essayez:
#include <stdlib.h>
#include <stdio.h>
int main (int argc, char *argv[])
{
printf ("number %d, number
%d\n", 1+2,10);
exit (3);
}
|
printf peut être considéré comme la commande
envoyant un message de sortie au terminal. Elle est connue sous le
nom de fonction de la bibliothèque standard du C
(standard C library function). En d'autres
termes, toute implémentation
[NdT: le mot est désormais consacré, il signifie ``mise en oeuvre''] C devrait toujours présenter la fonction printf
et elle devrait toujours se comporter de la même façon.
L'expression %d représente un nombre décimal
avec un point à l'affichage. Le premier %d
sera substitué par le premier argument de la fonction printf
après la chaîne littérale, en l'occurence par le résultat de l'opération
1+2. Le second %d
sera remplacé par le second argument (ici, 10).
L'expression %d est un descripteur
de format. Elle convertit un nombre entier en nombre décimal.
Voir printf(3) pour plus de détails.
Next: Variables et types.
Up: Les bases du C.
Previous: Les bases du C.
Table des matières
1-01-2006