pdf Programmation en langage C Populaires

266 téléchargements

Programmation en langage C

Table des matières

Les bases de la programmation en C
1.1 Historique
1.2 La compilation
1.3 Les composants élémentaires du C
1.3.1 Les identificateurs
1.3.2 Les mots-clefs
1.3.3 Les commentaires
1.4 Structure d’un programme C
1.5 Les types prédéfinis
1.5.1 Le type caractere
1.5.2 Les types entiers
1.5.3 Les types flottants
1.6 Les constantes
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 conditionnel if---else . 25
1.8.2 Branchement multiple switch . 25
1.9 Les boucles 26
1.9.1 Boucle while 26
1.9.2 Boucle do---while . . 26

2 Les types compos´es
Table des mati`eres
1.9.3 Boucle for . 27
1.10 Les instructions de branchement non conditionnel . . 28
1.10.1 Branchement non conditionnel break . 28
1.10.2 Branchement non conditionnel continue . . 28
1.10.3 Branchement non conditionnel goto 29
1.11 Les fonctions d’entr´ees-sorties classiques . 29
1.11.1 La fonction d’´ecriture printf . 29
1.11.2 La fonction de saisie scanf 31
1.11.3 Impression et lecture de caract`eres 32
1.12 Les conventions d’´ecriture d’un programme C . 33
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 avec typedef 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 type const et volatile . 66
4.7 La fonction main . . 67
4.8 Pointeur sur une fonction . . 69
4.9 Fonctions avec un nombre variable de param`etres . . 74
Table des mati`eres
5 Les directives au pr´eprocesseur
5
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 fonction fopen . . 81
6.1.2 La fonction fclose . . 82
6.2 Les entr´ees-sorties format´ees . 83
6.2.1 La fonction d’´ecriture fprintf 83
6.2.2 La fonction de saisie fscanf 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’utilitaire make . . 93
7.3.1 Principe de base 93
7.3.2 Cr´eation d’un Makefile 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-sorties <stdio.h> . 99
A.1.1 Manipulation de fichiers 99
A.1.2 Entr´ees et sorties format´ees 99
A.1.3 Impression et lecture de caract`eres 100
A.2 Manipulation de caract`eres <ctype.h> . 101
A.3 Manipulation de chaˆınes de caract`eres <string.h> 102
A.4 Fonctions math´ematiques <math.h> . 103
A.5 Utilitaires divers <stdlib.h> 104
A.5.1 Allocation dynamique 104
A.5.2 Conversion de chaˆınes de caract`eres en nombres 104
A.5.3 G´en´eration de nombres pseudo-al´eatoires . . 104
A.5.4 Arithm´etique sur les entiers 104
A.5.5 Recherche et tri . 105
A.5.6 Communication avec l’environnement . 105
6
B Le d´ebogueur GDB
Table des mati`eres
A.6 Date et heure <time.h> . . 106
107
B.1 D´emarrer gdb . 107
B.2 Quitter gdb 108
B.3 Ex´ecuter un programme sous gdb . 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 114
B.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 12

Sujets, Cours et Annales récents