B 18 Résumé des principales commandes 3a Z 90 132 5a z 122 172 7a ; 59 73 3b [ 91 133 5b { 123 173 7b
Previous PDF | Next PDF |
[PDF] Concepts linguistiques en didactique des langues (Linguistic
DOCUMENT RESUME ED 385 Comprend un resume en anglais 3a Void le texte de deux chansons en «francais non standard* Essayez de relever les
[PDF] The English language in Francophone West - TeachingEnglish
of English teachers in Francophone West Africa? 125 Section 5 Enfin, la 10ème partie résume les résultats, tire des demographic/products/dyb/dybsets/ 2009-2010 pdf web&cd=1&ved=0CCAQFjAA&url=http 3A 2F 2Fwww unilag
[PDF] LE DISCOURS RAPPORTE OU DISCOURS INDIRECT
a) Exercice 1 (à imprimer et sur Internet): mettre les phrases qui ont le verbe introducteur au présent au discours rapporté b) Exercice 2 (à imprimer et sur
[PDF] Français de base de la 4e à la 6e année - Tout le monde à table
4 jan 2017 · une petite partie du bloc de temps réservé aux classes d'anglais pour enseigner au : des raisins » ( no 1, case 3A) correspond à l'image des raisins (no 2, case 2A) Évaluation sommative — Célébration, résumé, évaluation ou jugement, à la fin
[PDF] Document complet - Physique secondaire 3, programme détudes
La représentation graphique permet de comprendre comment l'élève résume, Applications des ondes sonores en médecine S3P-1-26, S3P-0-3a, S3P-0-4b, S3P-0-4e [dictionnaire anglais-français de terminologie reliée aux sciences et à la de la lumière http://www apsq org/sautquantique/activite/ANN-04 pdf
[PDF] PHYSIOLOGIE DU REIN
3 jan 2011 · 3a capsule rénale cortex rénal médullaire externe fi i ll I2 Circulation sanguine La clairance (clearance en anglais) exprime le volume de plasma épuré En résumé la perte de Na+ ne représente que 1 de la quantité
[PDF] la structure IMRAD
de la rédaction scientifique : la structure IMRAD I Introduction M Matériel et Méthodes R Résultats A And D Discussion + Conclusion et Résumé
[PDF] Programmation en langage C - Inria
B 18 Résumé des principales commandes 3a Z 90 132 5a z 122 172 7a ; 59 73 3b [ 91 133 5b { 123 173 7b
[PDF] MON LIVRE DE FRANCAIS
page LEXIQUE PAR THEME Se présenter (1) 2 Se présenter (2) 4 Le calendrier 6 À l'école (1) 8 À l'école (2) 10 Les consignes 12 Les actions 14
[PDF] commentaire les trois mousquetaires chapitre 4
[PDF] la mare au diable résumé par chapitre
[PDF] la mare au diable belgique
[PDF] la mare au diable film
[PDF] la mare au diable restaurant
[PDF] la petite fadette
[PDF] la mare au diable grenoble
[PDF] la mare au diable boite de nuit
[PDF] le pere goriot de honore de balzac fiche de lecture
[PDF] méthodologie sur la discussion (introduction développement et conclusion)
[PDF] exercices sur le résumé de texte
[PDF] résumé chapitre 3 candide
[PDF] résumé de chapitre 2 de candide en arabe
[PDF] candide chapitre 2 résumé
Programmation en langage C
Anne CANTEAUT
INRIA - projet CODES
B.P. 105
78153 Le Chesnay Cedex
Anne.Canteaut@inria.fr
C 2Table des mati`eres3
Table des mati`eres
1 Les bases de la programmation en C 9
1.1 Historique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2 La compilation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3 Les composants ´el´ementaires du C . . . . . . . . . . . . . . . . . . . . . . . . 11
1.3.1 Les identificateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.3.2 Les mots-clefs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.3.3 Les commentaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.4 Structure d"un programme C . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.5 Les types pr´ed´efinis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.5.1 Le type caract`ere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.5.2 Les types entiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.5.3 Les types flottants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.6 Les constantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.6.1 Les constantes enti`eres . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.6.2 Les constantes r´eelles . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.6.3 Les constantes caract`eres . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.6.4 Les constantes chaˆınes de caract`eres . . . . . . . . . . . . . . . . . . . 19
1.7 Les op´erateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.7.1 L"affectation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.7.2 Les op´erateurs arithm´etiques . . . . . . . . . . . . . . . . . . . . . . . 20
1.7.3 Les op´erateurs relationnels . . . . . . . . . . . . . . . . . . . . . . . . 21
1.7.4 Les op´erateurs logiques bool´eens . . . . . . . . . . . . . . . . . . . . . 21
1.7.5 Les op´erateurs logiques bit `a bit . . . . . . . . . . . . . . . . . . . . . 22
1.7.6 Les op´erateurs d"affectation compos´ee . . . . . . . . . . . . . . . . . . 22
1.7.7 Les op´erateurs d"incr´ementation et de d´ecr´ementation . . . . . . . . . 23
1.7.8 L"op´erateur virgule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.7.9 L"op´erateur conditionnel ternaire . . . . . . . . . . . . . . . . . . . . . 23
1.7.10 L"op´erateur de conversion de type . . . . . . . . . . . . . . . . . . . . 24
1.7.11 L"op´erateur adresse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.7.12 R`egles de priorit´e des op´erateurs . . . . . . . . . . . . . . . . . . . . . 24
1.8 Les instructions de branchement conditionnel . . . . . . . . . . . . . . . . . . 25
1.8.1 Branchement conditionnelif---else. . . . . . . . . . . . . . . . . . 25
1.8.2 Branchement multipleswitch. . . . . . . . . . . . . . . . . . . . . . . 25
1.9 Les boucles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.9.1 Bouclewhile. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.9.2 Boucledo---while. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4Table des mati`eres
1.9.3 Bouclefor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1.10 Les instructions de branchement non conditionnel . . . . . . . . . . . . . . . . 28
1.10.1 Branchement non conditionnelbreak. . . . . . . . . . . . . . . . . . 28
1.10.2 Branchement non conditionnelcontinue. . . . . . . . . . . . . . . . 28
1.10.3 Branchement non conditionnelgoto. . . . . . . . . . . . . . . . . . . 29
1.11 Les fonctions d"entr´ees-sorties classiques . . . . . . . . . . . . . . . . . . . . . 29
1.11.1 La fonction d"´ecritureprintf. . . . . . . . . . . . . . . . . . . . . . . 29
1.11.2 La fonction de saisiescanf. . . . . . . . . . . . . . . . . . . . . . . . 31
1.11.3 Impression et lecture de caract`eres . . . . . . . . . . . . . . . . . . . . 32
1.12 Les conventions d"´ecriture d"un programme C . . . . . . . . . . . . . . . . . . 33
2 Les types compos´es 35
2.1 Les tableaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.2 Les structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.3 Les champs de bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.4 Les unions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.5 Les ´enum´erations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.6 D´efinition de types compos´es avectypedef. . . . . . . . . . . . . . . . . . . 41
3 Les pointeurs 43
3.1 Adresse et valeur d"un objet . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.2 Notion de pointeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.3 Arithm´etique des pointeurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.4 Allocation dynamique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.5 Pointeurs et tableaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.5.1 Pointeurs et tableaux `a une dimension . . . . . . . . . . . . . . . . . . 50
3.5.2 Pointeurs et tableaux `a plusieurs dimensions . . . . . . . . . . . . . . 52
3.5.3 Pointeurs et chaˆınes de caract`eres . . . . . . . . . . . . . . . . . . . . 53
3.6 Pointeurs et structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.6.1 Pointeur sur une structure . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.6.2 Structures auto-r´ef´erenc´ees . . . . . . . . . . . . . . . . . . . . . . . . 56
4 Les fonctions 59
4.1 D´efinition d"une fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.2 Appel d"une fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.3 D´eclaration d"une fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.4 Dur´ee de vie des variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.4.1 Variables globales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.4.2 Variables locales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.5 Transmission des param`etres d"une fonction . . . . . . . . . . . . . . . . . . . 64
4.6 Les qualificateurs de typeconstetvolatile. . . . . . . . . . . . . . . . . . 66
4.7 La fonctionmain. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.8 Pointeur sur une fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.9 Fonctions avec un nombre variable de param`etres . . . . . . . . . . . . . . . . 74
Table des mati`eres5
5 Les directives au pr´eprocesseur 77
5.1 La directive#include. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
5.2 La directive#define. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
5.2.1 D´efinition de constantes symboliques . . . . . . . . . . . . . . . . . . . 78
5.2.2 D´efinition de macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
5.3 La compilation conditionnelle . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.3.1 Condition li´ee `a la valeur d"une expression . . . . . . . . . . . . . . . . 79
5.3.2 Condition li´ee `a l"existence d"un symbole . . . . . . . . . . . . . . . . 80
6 La gestion des fichiers 81
6.1 Ouverture et fermeture d"un fichier . . . . . . . . . . . . . . . . . . . . . . . . 81
6.1.1 La fonctionfopen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
6.1.2 La fonctionfclose. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
6.2 Les entr´ees-sorties format´ees . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
6.2.1 La fonction d"´ecriturefprintf. . . . . . . . . . . . . . . . . . . . . . 83
6.2.2 La fonction de saisiefscanf. . . . . . . . . . . . . . . . . . . . . . . . 83
6.3 Impression et lecture de caract`eres . . . . . . . . . . . . . . . . . . . . . . . . 83
6.4 Relecture d"un caract`ere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
6.5 Les entr´ees-sorties binaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
6.6 Positionnement dans un fichier . . . . . . . . . . . . . . . . . . . . . . . . . . 86
7 La programmation modulaire 89
7.1 Principes ´el´ementaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
7.2 La compilation s´epar´ee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
7.2.1 Fichier en-tˆete d"un fichier source . . . . . . . . . . . . . . . . . . . . . 91
7.2.2 Variables partag´ees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
7.3 L"utilitairemake. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
7.3.1 Principe de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
7.3.2 Cr´eation d"unMakefile. . . . . . . . . . . . . . . . . . . . . . . . . . 94
7.3.3 Macros et abbr´eviations . . . . . . . . . . . . . . . . . . . . . . . . . . 96
7.3.4 R`egles g´en´erales de compilation . . . . . . . . . . . . . . . . . . . . . . 97
A La librairie standard 99
A.1 Entr´ees-sorties6Table des mati`eres
A.6 Date et heureB Le d´ebogueur GDB 107
B.1 D´emarrergdb. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 B.2 Quittergdb. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 B.3 Ex´ecuter un programme sousgdb. . . . . . . . . . . . . . . . . . . . . . . . . 108 B.4 Terminaison anormale du programme . . . . . . . . . . . . . . . . . . . . . . 109 B.5 Afficher les donn´ees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 B.6 Appeler des fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 B.7 Modifier des variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 B.8 Se d´eplacer dans la pile des appels . . . . . . . . . . . . . . . . . . . . . . . . 113 B.9 Poser des points d"arrˆet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114B.10 G´erer les points d"arrˆet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
B.11 Les points d"arrˆet conditionnels . . . . . . . . . . . . . . . . . . . . . . . . . . 116 B.12 Ex´ecuter un programme pas `a pas . . . . . . . . . . . . . . . . . . . . . . . . 117 B.13 Afficher la valeur d"une expression `a chaque point d"arrˆet . . . . . . . . . . . 119 B.14 Ex´ecuter automatiquement des commandes aux points d"arrˆet . . . . . . . . . 120 B.15 Les raccourcis des noms de commande . . . . . . . . . . . . . . . . . . . . . . 123 B.16 Utiliser l"historique des commandes . . . . . . . . . . . . . . . . . . . . . . . . 123 B.17 Interface avec le shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 B.18 R´esum´e des principales commandes . . . . . . . . . . . . . . . . . . . . . . . . 124Bibliographie 127
Index128
Liste des tableaux7
Liste des tableaux
1.1 Codes ASCII des caract`eres imprimables . . . . . . . . . . . . . . . . . . . . . 15
1.2 Les types entiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.3 Les types flottants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.4 R`egles de priorit´e des op´erateurs . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.5 Formats d"impression pour la fonctionprintf. . . . . . . . . . . . . . . . . . 30
1.6 Formats de saisie pour la fonctionscanf. . . . . . . . . . . . . . . . . . . . . 32
8Liste des tableaux
9Chapitre 1
Les bases de la programmation en C
1.1 Historique
Le C a ´et´e con¸cu en 1972 par Dennis Richie et Ken Thompson, chercheurs aux Bell Labs, afin de d´evelopper un syst`eme d"exploitation UNIX sur un DEC PDP-11. En 1978, Brian Kernighan et Dennis Richie publient la d´efinition classique du C dans le livreThe C Pro- gramming language[6]. Le C devenant de plus en plus populaire dans les ann´ees 80, plusieurs groupes mirent sur le march´e des compilateurs comportant des extensions particuli`eres. En1983, l"ANSI (American National Standards Institute) d´ecida de normaliser le langage; ce
travail s"acheva en 1989 par la d´efinition de la norme ANSI C. Celle-ci fut reprise telle quelle par l"ISO (International Standards Organization) en 1990. C"est ce standard, ANSI C, qui est d´ecrit dans le pr´esent document.1.2 La compilation
Le C est un langagecompil´e(par opposition aux langages interpr´et´es). Cela signifie qu"unprogramme C est d´ecrit par un fichier texte, appel´efichier source. Ce fichier n"´etant ´evidem-
ment pas ex´ecutable par le microprocesseur, il faut le traduire en langage machine. Cetteop´eration est effectu´ee par un programme appel´ecompilateur. La compilation se d´ecompose
en fait en 4 phases successives:1.Le traitement par le pr´eprocesseur:le fichier source est analys´e par le pr´eproces-
seur qui effectue des transformations purement textuelles (remplacement de chaˆınes de caract`eres, inclusion d"autres fichiers source ...).2.La compilation:la compilation proprement dite traduit le fichier g´en´er´e par le pr´e-
processeur en assembleur, c"est-`a-dire en une suite d"instructions du microprocesseur qui utilisent des mn´emoniques rendant la lecture possible.3.L"assemblage:cette op´eration transforme le code assembleur en un fichier binaire,
c"est-`a-dire en instructions directement compr´ehensibles par le processeur. G´en´erale- ment, la compilation et l"assemblage se font dans la foul´ee, sauf si l"on sp´ecifie explici- tement que l"on veut le code assembleur. Le fichier produit par l"assemblage est appel´e fichier objet.10Chapitre 1. Les bases de la programmation en C
4.L"´edition de liens:un programme est souvent s´epar´e en plusieurs fichiers source, pour
des raisons de clart´e mais aussi parce qu"il fait g´en´eralement appel `a des librairies de
fonctions standard d´ej`a ´ecrites. Une fois chaque code source assembl´e, il faut donc lier
entre eux les diff´erents fichiers objets. L"´edition de liens produit alors un fichier dit ex´ecutable.Les diff´erents types de fichiers utilis´es lors de la compilation sont distingu´es par leur suffixe.
Les fichiers source sont suffix´es par.c, les fichiers pr´etrait´es par le pr´eprocesseur par.i, les
fichiers assembleur par.s, et les fichiers objet par.o. Les fichiers objets correspondant aux librairies pr´e-compil´ees ont pour suffixe.a. Le compilateur C sous UNIX s"appellecc. On utilisera de pr´ef´erence le compilateurgcc du projet GNU. Ce compilateur est livr´e gratuitement avec sa documentation et ses sources. Par d´efaut,gccactive toutes les ´etapes de la compilation. On le lance par la commande gcc [options] fichier.c [-llibrairies]Par d´efaut, le fichier ex´ecutable s"appellea.out. Le nom de l"ex´ecutable peut ˆetre modifi´e
`a l"aide de l"option-o.Les ´eventuelles librairies sont d´eclar´ees par la chaˆıne-llibrairie. Dans ce cas, le syst`eme
recherche le fichierliblibrairie.adans le r´epertoire contenant les librairies pr´e-compil´ees
quotesdbs_dbs4.pdfusesText_8