print · rss · source

< Avant-propos | TutoCFrench | Manipuler des valeurs >


En avant !

Notions :

  • Unix
  • langage compilé, fichier source, fichier exécutable
  • compilateur, gcc
  • fonction principale main()

Le langage C a été créé par Brian Kernighan au début des années 70 afin d'eviter autant que possible l'utilisation de l'assembleur dans l'écriture du système UNIX. L'avantage du C sur l'assembleur est qu'il permet aux programmes d'être plus concis, plus simples à écrire et qu'ils sont facilement portables sur d'autres architectures.
C est un langage :

  • qui permet de tout faire
  • qui permet de créer des exécutables très rapides (compilés)
  • qui possède peu d'instructions

Ce dont vous aurez besoin

Le langage C est un "langage compilé", c'est à dire que ses instructions sont traduites en langage machine à l'aide d'un compilateur. Outre le système d'exploitation vous aurez donc besoin :

  • d'un éditeur de texte pour écrire le programme. Sous UNIX, les plus courants sont vi et emacs
  • d'un compilateur pour créer un fichier exécutable à partir du fichier source. Sous Linux, le plus courant est gcc

Un premier programme

/*
 * Mon premier programme C.
 */


#include <stdio.h>

int main()
{
    printf("hello world\n");
    return 0;
}

Explication du programme pas à pas :

  • Les directives /* ... */ permettent d'insérer dans le code un commentaire, ici sur plusieurs lignes
  • La directive #include <stdio.h> permet d'utiliser la fonction d'affichage printf
  • int main() est le point d'entrée du programme
    • l'identifiant main est le nom de la fonction principale
    • les parenthèses vides () indiquent que notre programme ne prend pas d'argument en entrée
    • le mot clef int indique que notre programme va renvoyer un nombre entier au shell
  • L'accolade ouvrante { débute le code proprement dit
  • La fonction printf() permet d'afficher un message à l'écran. Les guillemets "..." délimitent la chaîne de caractère à afficher. Le caractère \n signifie un saut de ligne suivi d'un retour chariot. Le point-virgule ; à la fin de chaque phrase est indispensable
  • L'instruction return permet de renvoyer un code de retour au shell. Ici, le programme renvoie la valeur 0
  • L'accolade fermante } termine un bloc d'instructions, ici la fonction principale main()

Compilation et exécution du programme

Pour compiler et exécuter ce programme sous UNIX, il faut d'abord le copier dans un fichier se terminant par l'extension .c à l'aide d'un éditeur de texte. Appelons ce fichier "intro.c". On le compile sous GNU/Linux avec gcc (sous d'autre UNIX, le compilateur s'appelle le plus souvent cc) :

$ gcc intro.c

Cela génère un fichier exécutable qui s'appelle par défaut a.out. Pour le lancer à partir du shell :

$ ./a.out
hello world

Si nous préfèrons génèrer un fichier exécutable nommé par exemple "intro", nous devons utiliser l'option -o :

$ gcc -o intro intro.c
$ ./intro
hello world

A la compilation, il est également conseillé d'utiliser l'option -Wall pour s'assurer que le code est syntaxiquement impeccable :

$ gcc -Wall -o intro intro.c

Exercices

1. Recopiez le programme précédent, compilez-le et lancez le. Ensuite, modifiez le afin qu'il produise le résultat suivant :

$ ./intro
hello
world

2. Modifiez la valeur retournée par la fonction main et une fois le programme compilé et exécuté, testez la commande shell suivante : echo $?.


< Avant-propos | TutoCFrench | Manipuler des valeurs >

print · rss · source
Page last modified on June 09, 2008, at 01:03 PM