next up previous contents Next:  Variables et types. Up: Les bases du C. Previous: Les bases du C.   Table des matières  

23.1.1  Le plus simple des programmes.

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:

./hello 


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 up previous contents Next:  Variables et types. Up: Les bases du C. Previous: Les bases du C.   Table des matières  
1-01-2006