[PDF] Programmation en langage C Canteaut/COURS C Un programme





Previous PDF Next PDF



Le livre du C pour les vrais debutants en programmation.pdf

24. 3.3 Les opérateurs relatifs au type int. 25. Éditions Eyrolles. Page 5. Le livre du C - Premier langage. Table des matières. 4. 29166 4.1 Le codage dans le 



Programmation en langage C

et de modifier les variables au cours de l'exécution et aussi d'exécuter le programme pas-`a-pas. B.1 Démarrer gdb. Pour pouvoir utiliser le débogueur il 



Programmation C++ (débutant)/Notions de base

Dans ce cours nous allons d'abord apprendre les notions non orientées objet du C++ (donc nous étudierons principalement les notions du langage C)



COURS ALGORITHMIQUE ET PROGRAMMATION INFORMATIQUE COURS ALGORITHMIQUE ET PROGRAMMATION INFORMATIQUE

12 mars 2013 Peut-on être sûr qu'un algorithme réponde au problème pour lequel il a été conçu ? 9. MAP - UNS. EXEMPLE DE LANGAGE ALGORITHMIQUE. 10. MAP - UNS ...



Les bases de la programmation en C

Le C est un langage compilé (par opposition aux langages interprétés). Cela signifie qu'un programme C est décrit par un fichier texte appelé fichier source.



Programmation C++ (débutant)/Les fonctions

de rendre la fonction plus générale donc plus facilement réutilisable. La réutilisation de code est une des notions fondamentales du langage C++. La notion ...



Langage C : énoncé et corrigé des exercices IUP GéniE

de caract è res en anneau continu ( voir po ly de cours ) . Pour ce l a vous créere z un t y pe de structure de fil e contenant q uatre pointeurs sur des.



Programmation C++ (débutant)/Les classes

Une classe va permettre de regrouper en une seule entité des données membres et des fonctions membres appelées méthodes. Cependant contrairement au langage C



Cours SGBD 1 Concepts et langages des Bases de Données

Par exemple : • La cardinalité 03 indique qu'un adhérent peut être associé à 0



C++ : LES BASES

de la programmation-objet. Le but de ce cours est de présenter la syntaxe de base du langage C++. Certains traits propres au C dont l'usage s'av`ere ...



Le livre du C pour les vrais debutants en programmation.pdf

C. [21]. 123150NGFK. 13205809. LETE premier langage. Pour les vrais débutants vous qui souhaiteraient utiliser cet ouvrage comme support de cours voici.



Programmation en langage C

Canteaut/COURS C Un programme en langage C est constitué des six groupes de composants ... pour définir les variables globales de l'environnement C.



Informatique Langage C - Notes de cours CA 2007/08

On trouvera dans un programme des variables et des constantes il faut fixer leurs types. Pour produire de nouvelles valeurs



Langage C : énoncé et corrigé des exercices IUP GéniE

de cours ) . Pour ce l a vous créere z un t y pe de structure de fil e contenant q uatre pointeurs sur des cha î nes de caract è res.



Programmation C++ (débutant)/Notions de base

Dans ce cours nous allons d'abord apprendre les notions non orientées objet du C++ (donc nous étudierons principalement les notions du langage C)



C++ : LES BASES

Le but de ce cours est de présenter la syntaxe de base du langage C++. Pour ce faire dans un fichier .cpp on prévoit l'inclusion.



Cours PHP Accéléré

12 juil. 2022 Note : Le langage PHP a subi de profonds remaniements et a bénéficié ... Pour ne pas écrire ce genre de code quelques solutions courantes :.



Cours SGBD 1 Concepts et langages des Bases de Données

IUT de Nice - Cours SGBD1. 9. ? Indépendance physique Langage navigationnel pour manipuler les données ... C'est la phase d'identification des clés.



cours-python.pdf

22 mars 2018 Ce cours a été conçu à l'origine pour les étudiants débutants en ... Python est un langage interprété c'est-à-dire que chaque ligne de code ...



Les bases de la programmation en C

Les fichiers objets correspondant aux librairies pré-compilées ont pour suffixe .a Un programme en langage C est constitué des six groupes de composants ...



Programmation en langage C - Inria

Le C est un langage compil´e (par opposition aux langages interpr´et´es) Cela signi?e qu’un programme C est d´ecrit par un ?chier texte appel´e ?chier source Ce ?chier n’´etant ´evidem-ment pas ex´ecutable par le microprocesseur il faut le traduire en langage machine Cette

  • Cours Gratuit Pour commencer La Programmation en Langage C

    Dans cette page, nous vous proposons un cours gratuit en langage C / initiation à la programmation en C. Le cours du langage C est téléchargeable en PDF Avant de télécharger le cours, nous vous recommandons de lire les généralités ci-dessous. Si vous êtes vraiment un novice, commencez avec l’algorithme (cours initiation à l’algorithme)

Quelle est la définition du langage C?

On trouve ses sources en 1972, dans les laboratoires Bell, afin de développer une version portable du système d'exploitation unix. C'est un langage de programmation structuré, mais très "près" de la machine. Publication en 1978 de "The C programming language" par Kernighan et Ritchie: définition classique du C.

Qu'est-ce que le langage C?

Le langage C a connu une croissance en popularité énorme ces dernières années. On trouve ses sources en 1972, dans les laboratoires Bell, afin de développer une version portable du système d'exploitation unix. C'est un langage de programmation structuré, mais très "près" de la machine.

Qu'est-ce que le cours de programmation en C pour débutants ?

Ce cours de programmation en C pour débutants est fait pour vous ! Le C est un langage incontournable qui en a inspiré beaucoup d'autres. Inventé dans les années 70, il est toujours d'actualité dans la programmation système et la robotique. Il est plutôt complexe, mais si vous le maîtrisez vous aurez des bases de programmation très solides !

Quels sont les composants d'un programme en langage C ?

Un programme en langage C est constitu´e des six groupes de composants ´el´ementaires suivants: – les identi?cateurs, – les mots-clefs, – les constantes, – les chaˆ?nes de caract`eres, – les op´erateurs, – les signes de ponctuation. On peut ajouter `a ces six groupes les commentaires, qui sont enlev´es par le pr´eprocesseur.

Programmation en langage C

Anne CANTEAUT

INRIA - projet CODES

B.P. 105

78153 Le Chesnay Cedex

Anne.Canteaut@inria.fr

C 2

Table 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-sorties. . . . . . . . . . . . . . . . . . . . . . . . . . . . 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. . . . . . . . . . . . . . . . . . . . . 101 A.3 Manipulation de chaˆınes de caract`eres. . . . . . . . . . . . . . 102 A.4 Fonctions math´ematiques. . . . . . . . . . . . . . . . . . . . . . . 103 A.5 Utilitaires divers. . . . . . . . . . . . . . . . . . . . . . . . . . 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

6Table des mati`eres

A.6 Date et heure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

B 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 . . . . . . . . . . . . . . . . . . . . . . . . 124

Bibliographie 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

9

Chapitre 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. En

1983, 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"un

programme 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. Cette

op´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

(g´en´eralement/usr/lib/). Par exemple, pour lier le programme avec la librairie math´e- matique, on sp´ecifie-lm. Le fichier objet correspondant estlibm.a. Lorsque les librairies

pr´e-compil´ees ne se trouvent pas dans le r´epertoire usuel, on sp´ecifie leur chemin d"acc`es par

l"option-L. Les options les plus importantes du compilateurgccsont les suivantes: -c: supprime l"´edition de liens; produit un fichier objet. -E: n"active que le pr´eprocesseur (le r´esultat est envoy´e sur la sortie standard). -g: produit des informations symboliques n´ecessaires au d´ebogueur.

-Inom-de-r´epertoire: sp´ecifie le r´epertoire dans lequel doivent ˆetre recherch´es les fichiers

en-tˆetes `a inclure (en plus du r´epertoire courant).

-Lnom-de-r´epertoire: sp´ecifie le r´epertoire dans lequel doivent ˆetre recherch´ees les librai-

ries pr´ecompil´ees (en plus du r´epertoire usuel). -onom-de-fichier: sp´ecifie le nom du fichier produit. Par d´efaut, le ex´ecutable fichier s"appellea.out. -O,-O1,-O2,-O3: options d"optimisations. Sans ces options, le but du compilateur est de minimiser le coˆut de la compilation. En rajoutant l"une de ces options, le compilateur tente de r´eduire la taille du code ex´ecutable et le temps d"ex´ecution. Les options cor- respondent `a diff´erents niveaux d"optimisation:-O1(similaire `a-O) correspond `a une faible optimisation,-O3`a l"optimisation maximale. -S: n"active que le pr´eprocesseur et le compilateur; produit un fichier assembleur.

-v: imprime la liste des commandes ex´ecut´ees par les diff´erentes ´etapes de la compilation.

A. Canteaut - Programmation en langage C11

-W: imprime des messages d"avertissement (warning) suppl´ementaires. -Wall: imprime tous les messages d"avertissement. Pour plus de d´etails surgcc, on peut consulter le chapitre 4 de [8].

1.3 Les composants ´el´ementaires du C

Un programme en langage C est constitu´e des six groupes de composants ´el´ementaires suivants: - les identificateurs, - les mots-clefs, - les constantes, - les chaˆınes de caract`eres, - les op´erateurs, - les signes de ponctuation. On peut ajouter `a ces six groupes les commentaires, qui sont enlev´es par le pr´eprocesseur.

1.3.1 Les identificateurs

Le rˆole d"un identificateur est de donner un nom `a une entit´e du programme. Plus pr´eci- s´ement, un identificateur peut d´esigner: - un nom de variable ou de fonction, - un type d´efini partypedef,struct,unionouenum, - une ´etiquette. Un identificateur est une suite de caract`eres parmi: - les lettres (minuscules ou majuscules, mais non accentu´ees), - les chiffres, - le "blanc soulign´e" ( Le premier caract`ere d"un identificateur ne peut pas ˆetre un chiffre. Par exemple,var1,tabquotesdbs_dbs23.pdfusesText_29
[PDF] table de division pdf

[PDF] table de multiplication de 12 ? imprimer

[PDF] langage c pdf exercices corrigés

[PDF] cours langage c++ pour débutants pdf

[PDF] cours langage c pdf pour debutant

[PDF] langage c++ cours pdf

[PDF] apprendre le latin livre

[PDF] apprendre latin autodidacte

[PDF] aprender latin pdf

[PDF] cours de francais pour etranger bordeaux gratuit

[PDF] cours de francais pour etranger metz

[PDF] cours de français gratuit vaud

[PDF] alliance francaise bordeaux aquitaine

[PDF] cours de français pour étrangers metz

[PDF] cours de français lausanne pas cher