Vous êtes sur la page 1sur 39

Langage C

Prof. Mohamed Massour El Aoud massour@ymail.com cole Nationale des Sciences Appliques Khouribga

Plan
Gnralits Historique du langage Cration dun programme C Bibliothques de fonctions prdfinies Les composants dun programme C Les bases de la programmation en C Types de donnes Structures de contrle Structures de donnes Fonction et paramtres de fonctions Les fichiers
Langage C

Langage de programmation
Langage : Ensemble de caractres, de symboles et de rgles permettant de les assembler, utilis pour donner des instructions lordinateur. (Larousse) Programme : Squence dinstructions et de donnes enregistres sur un support et susceptible dtre traite par un ordinateur (Larousse)

Langage C

Historique des langages


Le processeur contrle tout, mais il ne comprend que le langage machine soit des sries de nombres qui dsignent lopration effectuer puis o leffectuer spcifiques chaque microprocesseur Pas trs facile utiliser/pas portable Langage de programmation : interface homme-machine

Langage C

Historique du langage C
Le C a t conu en 1972 par Dennis Richie et Ken Thompson, chercheurs aux Bell Labs, afin de dvelopper un systme d'exploitation UNIX. Le C devenant de plus en plus populaire dans les annes 80. En 1983, l'ANSI (American National Standards Institute) dcida de normaliser le langage ; ce travail s'acheva en 1989 par la dfinition de la norme ANSI C. Celle-ci fut reprise telle quelle par l'ISO (International Standards Organization) en 1990.

Langage C

Historique du langage C
Avantages
Rpandu Plat au programmeur Il a marqu toute une gnration Il a inspir dautres langages (C++, Java)

Il a pourtant ses dfauts


Trop permissif (typage faible par exemple)

Trop proche du bas niveau Son sort fut li celui dUnix

Cration dun programme C


Le C est un langage compil (par opposition aux langages interprts). Cela signifie qu'un programme C est dcrit par un fichier texte, appel fichier source. Ce fichier n'tant videmment pas excutable par le microprocesseur, il faut le traduire en langage machine. Cette opration est effectue par un programme appel compilateur. La compilation se dcompose en fait en 4 phases successives :

Langage C

Compilation
Le traitement par le prprocesseur (dsigner le programme ralisant le prtraitement) : qui effectue des transformations purement textuelles. La compilation : la compilation proprement dite traduit le fichier gnr par le prprocesseur en assembleur L'assemblage: cette opration transforme le code assembleur en un fichier binaire directement comprhensibles par le processeur. L'dition de liens : un programme est souvent spar en plusieurs fichiers source, L'dition de liens produit alors un fichier dit excutable.
Langage C

Compilation

Langage C

Phases du dveloppement dun projet

Langage C

Programme
Programme = ensemble de modules
inclusions (objets, donnes prdfinis) types (nouveaux types dobjets) variables ( cases mmoires rserver) liste de fonctions Fonctions en-tte (vue de lextrieur) mode opratoire : liste dinstructions simples : termines par ;

composes : instructions simples entre {}


Langage C

Premier programme
Instructions Inclusion

#include <stdio.h> int main(void) { printf("Hello\n"); printf("Welcome to the Course!\n"); return 0; }


Hello Welcome to the Course!

fonction

main : fonction principale seule fonction appele lors du lancement du programme

Langage C

Les composants lmentaires du C


Un programme en langage C est constitu des six groupes de composants lmentaires suivants : les identificateurs, les mots-clefs, les constantes, les chanes de caractres, les oprateurs, les signes de ponctuation. On peut ajouter ces six groupes les commentaires, qui sont enlevs par le prprocesseur.
Langage C

Les identificateurs
Le rle d'un identificateur est de donner un nom une entit du programme. Plus prcisment, un identificateur peut dsigner un nom de variable ou de fonction, un type dfini par typedef, struct, union ou enum, une tiquette. Un identificateur est une suite de caractres parmi : les lettres (minuscules ou majuscules, mais non accentues), les chiffres, le blanc soulign'' (_).
Langage C

Les mots-clefs
Un certain nombre de mots, appels motsclefs, sont rservs pour le langage lui-mme et ne peuvent pas tre utiliss comme identificateurs. L'ANSI C compte 32 mots clefs :

Langage C

Les mots-clefs et ses catgories


les spcificateurs de stockage : auto register static extern typedef Les spcificateurs de type: char double enum float int long short signed struct union unsigned void Les qualificateurs de type: const volatile Les instructions de contrle: break case continue default do else for goto if switch while Divers: return sizeof
Langage C

Les commentaires
Un commentaire dbute par /* et se termine par */ Par exemple, /* Ceci est un commentaire */ On ne peut pas imbriquer des commentaires. Quand on met en commentaire un morceau de programme, il faut donc veiller ce que celui-ci ne contienne pas de commentaire Pourquoi commenter un code ? par quelquun qui reprend le projet par vous aprs une longue interruption Du texte est plus parlant que du code
Langage C

Structure d'un programme C


Une instruction est une expression suivie d'un pointvirgule. Plusieurs instructions peuvent tre rassembles par des accolades { et } pour former une instruction compose ou bloc qui est quivalent une instruction. Exemple: if (x != 0) { z = y / x; t = y % x; } Une instruction compose d'un spcificateur de type et d'une liste d'identificateurs spars par une virgule est une dclaration. Exemple: int a; int b = 1, c; double x = 2.38e4; char message[80];

Langage C

Structure d'un programme C


Un programme C se prsente de la faon suivante :
[directives au prprocesseur] [dclarations de variables externes] [fonctions secondaires] main() {dclarations de variables internes instructions }

Langage C

Exemple

Prprocesseur : inclusions constantes macros

type

Variable globale

Langage C

10

Exemple
En tte Dclaration variable Instruction simple

En tte Dclaration variable Instructions simples

Langage C

Structure d'un programme C


Les fonctions secondaires peuvent tre places indiffremment avant ou aprs la fonction principale. Une fonction secondaire peut se dcrire de la manire suivante : type ma_fonction ( arguments ) {dclarations de variables internes instructions } Cette fonction retournera un objet dont le type sera type ( l'aide d'une instruction comme return objet;). Les arguments de la fonction obissent une syntaxe voisine de celle des dclarations : on met en argument de la fonction une suite d'expressions type objet spares par des virgules.
Langage C

11

Les types prdfinis


Le C est un langage typ. Cela signifie en particulier que toute variable, constante ou fonction est d'un type prcis. Le type d'un objet dfinit la faon dont il est reprsent en mmoire La taille mmoire correspondant aux diffrents types dpend des compilateurs ; toutefois, la norme ANSI spcifie un certain nombre de contraintes. Les types de base en C concernent les caractres, les entiers et les flottants (nombres rels). Ils sont dsigns par les mots-clefs suivants : char , int , float, double ,short, long unsigned
Langage C

Type caractre
Le mot-clef char dsigne un objet de type caractre. Un char peut contenir n'importe quel lment du jeu de caractres de la machine utilise. Une des particularits du type char en C est qu'il peut tre assimil un entier . Par exemple, si c est de type char, l'expression c + 1 est valide. main() { char c = 'A'; printf("%c", c + 1); } Suivant les implmentations, le type char est sign ou non.
Langage C

12

Type caractre
? Correcte

'3' = 3 char c=3; int i= '3';

Langage C

Constante
Une constante est une valeur qui apparat littralement dans le code source d'un programme, le type de la constante tant dtermin par la faon dont la constante est crite. Les constantes peuvent tre de 4 types :
entier, flottant (nombre rel), caractre, numration. Ces constantes vont tre utilises, par exemple, pour initialiser une variable.

Langage C

13

Constante
Une constante entire peut tre reprsente de 3 manires diffrentes suivant la base dans laquelle elle est crite : dcimale Octale hexadcimale : la reprsentation hexadcimale d'un entier correspond sa dcomposition en base 16. Les lettres de a f sont utilises pour reprsenter les nombres de 10 15. Les constantes hexadcimales doivent commencer par 0x ou 0X. Par exemple, les reprsentations hexadcimales de 14 et 255 sont respectivement 0XE et 0XFF.

Langage C

Les constantes caractres


Toutefois, les caractres non-imprimables les plus frquents disposent aussi d'une notation plus simple :

\n nouvelle ligne \t \v \b '\\ \? tabulation horizontale

\r \f

retour chariot saut de page signal d'alerte apostrophe guillemet

tabulation verticale \a retour arrire '\'' barre ('\' serait ambigu) '\"' Question

Langage C

14

Les types entiers


En pratique, selon les types et machines, les entiers sont cods sur 8, 16, 32 ou 64 bits :
short (16 bits) int/long (32 bits) long long (64 bits)

Les littraux
notation dcimale : 12, -3, 47 notation octale : 014, -03, 057 notation hexadcimale : 0xC, -0X3, 0x2f

Attention ! espaces interdits exemple : 10 000 est incorrect


Langage C

Gestion des entres sorties


Sorite conventionnelles

Il s'agit des fonctions de la librairie standard <stdio.h> utilises avec les units classiques d'entres-sorties, qui sont respectivement le clavier et l'cran. La sortie formate
La fonction printf est une fonction l'impression formate, ce qui signifie que les donnes sont converties selon le format particulier choisi. Sa syntaxe est
printf("chane de contrle ",expression-1, ..., expression-n); Langage C

15

Gestion des entres sorties


Exemple:
printf("%d, %d, et %d sont des nombres entiers",1,2,3);

Sortie lcran : 1, 2,et 3 sont des nombres entiers

Langage C

Scanf
Scanf Permet de lire des lments formats sur le clavier. On utilise le % pour indiquer le type de valeur quon veut lire. Exemples : int i; scanf( "%d", &i ); remarquer la prsence du & car la fonction va modifier la valeur de i

Langage C

16

Les donnes entrer au clavier doivent tre spares par des blancs ou des <RETURN> sauf s'il s'agit de caractres. On peut toutefois fixer le nombre de caractres de la donne lire. Par exemple %3s pour une chane de 3 caractres, %10d pour un entier qui s'tend sur 10 chiffres, signe inclus

Langage C

Exemple
Exemple: #include <stdio.h> main() { int i; printf("entrez un entier sous forme hexadecimale i "); scanf("%x",&i); printf("i = %d\n",i); Return 0 }
Langage C

17

Type entier
C supports different kinds of integers maxima and minima defined in limits.h
type char signed char unsigned char short [int] unsigned short int unsigned int long [int] unsigned long Langage C format %c %c %c %hi %hu %i %u %li %lu bytes 1 1 1 2 2 2 or 4 2 or 4 4 4 minimum CHAR_MIN SCHAR_MIN 0 SHRT_MIN 0 INT_MIN 0 LONG_MIN 0 maximum CHAR_MAX SCHAR_MAX UCHAR_MAX SHRT_MAX USHRT_MAX INT_MAX UINT_MAX LONG_MAX ULONG_MAX

#include <stdio.h> #include <limits.h> int main(void) { unsigned long printf("minimum printf("maximum printf("maximum printf("maximum printf("maximum return 0; }

big = ULONG_MAX;

int = %i, ", INT_MIN); int = %i\n", INT_MAX); unsigned = %u\n", UINT_MAX); long int = %li\n", LONG_MAX); unsigned long = %lu\n", big);

minimum maximum maximum maximum

int = -32768, maximum int = 32767 unsigned = 65535 long int = 2147483647 unsigned long = 4294967295

Langage C

18

Entier avec diffrents base


Cest possible de travailler sur la base octale et sur la base hexadcimale
#include <stdio.h> int main(void) { int dec = 20, oct = 020, hex = 0x20; printf("dec=%d, oct=%d, hex=%d\n", dec, oct, hex); printf("dec=%d, oct=%o, hex=%x\n", dec, oct, hex); return 0; }

dec=20, oct=16, hex=32 dec=20, oct=20, hex=20

Langage C

format %d %ld %u %lu %o %lo %x %lx %f %lf %e %le %g %lg %c %s

conversion en int long int unsigned int unsigned long int unsigned int unsigned long int unsigned int unsigned long int double long double double long double double long double unsigned char char*

criture dcimale signe dcimale signe dcimale non signe dcimale non signe octale non signe octale non signe hexadcimale non signe hexadcimale non signe dcimale virgule fixe dcimale virgule fixe dcimale notation exponentielle dcimale notation exponentielle dcimale, reprsentation la plus courte parmi %f et %e dcimale, reprsentation la plus courte parmi %lf et %le caractre chane de caractres

Langage C

19

Type virgule flottante


Structure gnrale dun nombre virgule flottante:

Langage C

C supports different kinds of reals maxima and minima are defined in float.h

type float double long double

format %f %e %g %lf %le %lg %Lf %Le %Lg

bytes 4 8 10

minimum FLT_MIN DBL_MIN LDBL_MIN

maximum FLT_MAX DBL_MAX LDBL_MAX

Langage C

20

Exemple
#include <stdio.h> #include <float.h> int main(void) { double f = 3.1416, g = 1.2e-5, h = 5000000000.0; printf("f=%lf\tg=%lf\th=%lf\n", f, g, h); printf("f=%le\tg=%le\th=%le\n", f, g, h); printf("f=%lg\tg=%lg\th=%lg\n", f, g, h); printf("f=%7.2lf\tg=%.2le\th=%.4lg\n", f, g, h); return 0; }
f=3.141600 f=3.141600e+00 f=3.1416 f= 3.14 g=0.000012 g=1.200000e-05 g=1.2e-05 g=1.20e-05 h=5000000000.000000 h=5.000000e+09 h=5e+09 h=5e+09

Langage C

constante

#include <stdio.h> creates an integer constant int main(void) { const long double pi = 3.141592653590; const int days_in_week = 7; const sunday = 0; days_in_week = 5; error! return 0; }

Langage C

21

Constante
Constante dfinie par le Preprocessor

#include <stdio.h> #define #define #define int PI DAYS_IN_WEEK SUNDAY

search for PI, replace with 3.1415.... Note: no = and no ; 3.141592653590 7 0

day = SUNDAY;

Langage C

Type logique
En C, il nexiste pas de type logique on peut en dfinir un avec typedef enum {false, true} bool; Ds lors, dclarer : bool var; faux : var = false;

Langage C

22

Les variables
Une variable est un nom reprsentant une zone mmoire fixe pouvant accueillir un type prcis de valeurs dont le contenu peut changer tout au long du programme Exemples
int i; char c = 'A'; int a, b = 1, d;

Langage C

O on peut dclarer les variables


Hors des fonctions : variables globales
A lintrieur dun bloc {} Souvent, le bloc dune fonction Au dbut, avant toute instruction Nexiste que dans ce bloc

Langage C

23

Exemple
int main(void) { int i; i = 0; { int i; i = 1; } printf("%d\n",i); return 0; } Quel rsultats va afficher le programme?
Langage C

Assignation
dclarer une variable ne lui donne pas de valeur par dfaut Il faudra donc assigner une valeur une variable
avant de pouvoir lutiliser. Soit la dclaration Soit par assignation

Syntaxe nom_variable = expression;

Langage C

24

Assignation
Lors dune assignation, la variable et lexpression doivent tre de mme type
Si ce nest pas le cas, on peut demander une conversion de lexpression. ex : double d; d = (double) 2;

Une conversion peut amener une perte d information


ex : int i; i = (int) 2.3;

Langage C

conversion
On ne peut pas convertir tout en nimporte quoi
ex: convertir une chane en entier na pas de sens (mme si cest accept par C !!!) Une conversion explicite nest pas toujours ncessaire car il y a parfois une conversion implicite mais on limpose pdagogiquement.

ex: dentier flottant

Langage C

25

Conversion de type
#include <stdio.h> int main(void) { short a = 256, b = 10; printf("Type a number: "); scanf("%c", &a); printf("a = %hi, b = %f\n", a, b); return 0; } Type a number: 1 a = 305 b = 0.000000

Langage C

L'affectation Les oprateurs arithmtiques Les oprateurs relationnels

Oprateur dans C

Les oprateurs logiques boolens Les oprateurs logiques bit bit

Les oprateurs d'affectation compose Les oprateurs d'incrmentation et de dcrmentation L'oprateur virgule L'oprateur conditionnel ternaire L'oprateur de conversion de type L'oprateur adresse
Langage C

26

Les oprateurs arithmtiques


Les oprateurs arithmtiques classiques sont l'oprateur unaire - (changement de signe) ainsi que les oprateurs binaires: + addition - soustraction * multiplication / division % reste de la division (modulo) L'oprateur % ne s'applique qu' des oprandes de type entier
Langage C

Les oprateurs arithmtiques


Contrairement d'autres langages, le C ne dispose que de la notation / pour dsigner la fois la division entire et la division entre flottants. Si les deux oprandes sont de type entier, l'oprateur / produira une division entire (quotient de la division). Par contre, il dlivrera une valeur flottante ds que l'un des oprandes est un flottant. Notons enfin qu'il n'y a pas en C d'oprateur effectuant l'lvation la puissance. De faon gnrale, il faut utiliser la fonction pow(x,y) de la librairie math.h pour calculer xy.

Langage C

27

Exemple
i et j sont integer La division des int donne, 1 affct k f sont g sont double, la division des float donne 1.25 affect h int main(void) { int i = 5, j = 4, k; double f = 5.0, g = 4.0, h; k = i / j; h = f / g; h = i / j; return 0; }

La division des int i meme si h est double. Valeure affect est 1.00000

Langage C

L'oprateur de conversion de type


L'oprateur de conversion de type, appel cast, permet de modifier explicitement le type d'un objet. On crit :
int main(void) { int i = 5, j = 4; double f; f f f f integer division is done here, the result, 1, is changed to a double, 1.00000 = = = = (double)i / j; i / (double)j; (double)i / (double)j; (double)(i / j);

return 0; }

Langage C

28

Les oprateurs relationnels


>= suprieur ou gal < strictement infrieur <= infrieur ou gal == gal != diffrent Leur syntaxe est expression-1 op expression-2 Les deux expressions sont values puis compares. La valeur rendue est de type int (il n'y a pas de type boolen en C); elle vaut 1 si la condition est vraie, et 0 sinon.

Langage C

Exemple
Exemple:
#include <stdio.h> int main(void) { int i = 0; if(i = 0) printf("i is equal to zero\n"); else printf("i is not zero\n"); return 0; } i is not zero

Langage C

29

Les oprateurs logiques boolens


&& et logique || ou logique ! ngation logique Comme pour les oprateurs de comparaison, la valeur retourne par ces oprateurs est un int qui vaut 1 si la condition est vraie et 0 sinon. Dans une expression de type
expression-1 op-1 expression-2 op-2 ...expression-n

l'valuation se fait de gauche droite et s'arrte ds que le rsultat final est dtermin. Exemple: int i;int p[10]; if ((i >= 0) && (i <= 9) && !(p[i] == 0)) la dernire clause ne sera pas value si i n'est pas entre 0 et 9. Langage C

Les oprateurs logiques bit bit


Les six oprateurs suivants permettent de manipuler des entiers au niveau du bit. Ils s'appliquent aux entiers de toute longueur (short, int ou long), signs ou non & et | ou inclusif ^ ou exclusif ~ complment 1 << dcalage gauche >> dcalage droite En pratique, les oprateurs &, | et consistent appliquer bit bit les oprations suivantes

Langage C

30

Les oprateurs logiques bit bit

& 0 1

0 0 0

1 0 1

| 0 1

0 0 1

1 1 1

^ 0 1

0 0 1

1 1 0

Langage C

Les oprateurs logiques bit bit


#include <stdio.h> int main(void) { short a = 0x6eb9; short b = 0x5d27; unsigned short c = 7097; printf("0x%x, ", a & b); printf("0x%x, ", a | b); printf("0x%x\n", a ^ b); printf("%u, ", c << 2); printf("%u\n", c >> 1); return 0; } 7097 3548 0001 1011 1011 1001 0000 1101 1101 1100 7097 28388 0001 1011 1011 1001 0110 1110 1110 0100 0x6eb9 0x5d27 0x4c21 0x6eb9 0x5d27 0x7fbf 0x6eb9 0x5d27 0x339e 0110 1110 1011 1001 0101 1101 0010 0111 0100 1100 0010 0001 0110 1110 1011 1001 0101 1101 0010 0111 0111 1111 1011 1111 0110 1110 1011 1001 0101 1101 0010 0111 0011 0011 1001 1110

Langage C

31

Le dcalage droite et gauche effectuent respectivement une multiplication et une division par une puissance de 2. Notons que ces dcalages ne sont pas des dcalages circulaires (ce qui dpasse disparat).

Langage C

Considrons par exemple les entiers a=77 et b=23 de type unsigned char (i.e. 8 bits). En base 2 il s'crivent respectivement 01001101 et 00010111.
expression a b a&b a|b a^b ~a b << 2 b << 5 b >> 1
binaire 01001101 00010111 00000101 01011111 01011010 10110010 01011100 11100000 00001011

dcimale 77 23 5 95 90 178 92 112 11

multiplication par 4 ce qui dpasse disparat division entire par 2

Langage C

32

Incrmentation et dcrementation
Les oprateurs d'incrmentation ++ et de dcrmentation -- s'utilisent aussi bien en suffixe (i++) qu'en prfixe (++i). Dans les deux cas la variable i sera incrmente, toutefois dans la notation suffixe la valeur retourne sera l'ancienne valeur de i alors que dans la notation prfixe se sera la nouvelle.

Langage C

Incrmentation et dcrementation
#include <stdio.h> int main(void) { int i, j = 5; i = ++j; printf("i=%d, j=%d\n", i, j); j = 5; i = j++; printf("i=%d, j=%d\n", i, j); return 0; } i=6, j=6 i=5, j=6 equivalent to: 1. j++; 2. i = j;

equivalent to: 1. i = j; 2. j++;

Langage C

33

L'oprateur virgule
Une expression peut tre constitue d'expressions spares par des virgules : expression-1, expression-2, ... , expression-n
main() { int a, b; b = ((a = 3), (a + 2)); printf("\n b = %d \n",b); } imprime b = 5.

d'une

suite

Langage C

L'oprateur conditionnel ?
L'oprateur conditionnel ? est un oprateur ternaire. Sa syntaxe est la suivante : condition ? Expression 1 : expression 2 Cette expression est gale expression-1 si condition est satisfaite, et expression-2 sinon. Exemple :
int i, j = 100, k = -1; i = (j > k) ? j : k; if(j > k) i = j; else i = k; int i, j = 100, k = -1; i = (j < k) ? j : k; if(j < k) i = j; else i = k;

Langage C

34

Assignation
Autres oprateur dassignation:
+= &= <<= -= |= >>= *= ^= /= %=

Syntaxe:
expression1 op= expression2

is equivalent to:
(expression1) = (expression1) op (expression2)
a += 27; a = a + 27; f /= 9.2; f = f / 9.2; i *= j + 2; i = i * (j + 2);

Langage C

Rgles de priorit des oprateurs

#include <stdio.h> int main(void) { int j = 3 * 4 + 19 / 3; printf("j = %i\n", j); return 0; }

j = 18

Langage C

35

C traite les oprateurs selon leur degr de priorit Le tableau suivant classe les oprateurs par ordres de priorit dcroissants. Les oprateurs placs sur une mme ligne ont mme priorit. Si dans une expression figurent plusieurs oprateurs de mme priorit, l'ordre d'valuation est dfinie par la flche de la seconde colonne du tableau. On prferera toutefois mettre des parenthses en cas de doute...

Langage C

Rgles de priorit des oprateurs


oprateurs () [] -> . ! ~ ++ -- * / % + << >> < <= > >= == != &(et bit--bit) ^ | && || ?: = += -= *= /= %= &= ^= |= <<= >>= ,

Langage C

36

Rgles de priorit des oprateurs


Par exemple, les oprateurs logiques bit--bit sont moins prioritaires que les oprateurs relationnels. Cela implique que dans des tests sur les bits, il faut ajouter les parenthses aux expressions. Par exemple, il faut crire if ((x ^ y) != 0)

Langage C

Les instructions de branchement conditionnel


On appelle instruction de contrle toute instruction qui permet de contrler le fonctionnement d'un programme. Parmi les instructions de contrle, on distingue les instructions de branchement

Langage C

37

Branchement conditionnel if---else


La forme la plus gnrale est celle-ci : if (expression-1 ) instruction-1 else if (expression-2 ) instruction-2 else if (expression-n ) instruction-n else instruction

Langage C

Branchement conditionnel if---else


if(i > 0) printf("i is positive\n"); else printf("i is negative\n");

if(i > 0) printf("i is positive\n"); else { printf("i is negative\n"); i = -i; }

Langage C

38

printf("input an integer: "); scanf("%i", &j); if(j > 0); printf("a positive number was entered\n"); input an integer: -6

a positive number was entered

Langage C

Branchement multiple switch


Sa forme la plus gnrale est celle-ci : switch (expression ) {case constante-1: case constante-2: ... case constante-n: liste d'instructions n; break; default: liste d'instructions ;break; } la valeur de expression est gale l'une des constantes, la liste d'instructions correspondant est excute. Sinon la liste d'instructions correspondant default est excute. L'instruction default est facultative. Langage C liste d'instructions 1 ; break; liste d'instructions 2 ;break;

39