Transcription of Programmation en langage C - Inria
1 Programmation en langage CAnne CANTEAUTINRIA - projet 10578153 Le Chesnay des mati`eres3 Table des mati`eres1 Les bases de la Programmation en Historique .. La compilation .. Les composants el ementaires du C .. Les identificateurs .. Les mots-clefs .. Les commentaires .. Structure d un programme C .. Les types pr ed efinis .. Le type caract`ere .. Les types entiers .. Les types flottants .. Les constantes .. Les constantes enti`eres .. Les constantes r eelles .. Les constantes caract`eres .. Les constantes cha nes de caract`eres .. Les op erateurs.
2 L affectation .. Les op erateurs arithm etiques .. Les op erateurs relationnels .. Les op erateurs logiques bool eens .. Les op erateurs logiques bit `a bit .. Les op erateurs d affectation compos ee .. Les op erateurs d incr ementation et de d ecr ementation .. L op erateur virgule .. L op erateur conditionnel ternaire .. L op erateur de conversion de type .. L op erateur adresse .. R`egles de priorit e des op erateurs .. Les instructions de branchement conditionnel .. Branchement conditionnelif---else.. Branchement multipleswitch.. Les boucles.
3 Bouclewhile.. Boucledo---while.. 264 Table des mati` Bouclefor.. Les instructions de branchement non conditionnel .. Branchement non conditionnelbreak.. Branchement non conditionnelcontinue.. Branchement non conditionnelgoto.. Les fonctions d entr ees-sorties classiques .. La fonction d ecritureprintf.. La fonction de saisiescanf.. Impression et lecture de caract`eres .. Les conventions d ecriture d un programme C .. 332 Les types compos Les tableaux .. Les structures .. Les champs de bits .. Les unions .. Les enum erations .. D efinition de types compos es avectypedef.
4 413 Les Adresse et valeur d un objet .. Notion de pointeur .. Arithm etique des pointeurs .. Allocation dynamique .. Pointeurs et tableaux .. Pointeurs et tableaux `a une dimension .. Pointeurs et tableaux `a plusieurs dimensions .. Pointeurs et cha nes de caract`eres .. Pointeurs et structures .. Pointeur sur une structure .. Structures auto-r ef erenc ees .. 564 Les D efinition d une fonction .. Appel d une fonction .. D eclaration d une fonction .. Dur ee de vie des variables .. Variables globales .. Variables locales .. Transmission des param`etres d une fonction.
5 Les qualificateurs de typeconstetvolatile.. La fonctionmain.. Pointeur sur une fonction .. Fonctions avec un nombre variable de param`etres .. 74 Table des mati`eres55 Les directives au pr La directive#include.. La directive#define.. D efinition de constantes symboliques .. D efinition de macros .. La compilation conditionnelle .. Condition li ee `a la valeur d une expression .. Condition li ee `a l existence d un symbole .. 806 La gestion des Ouverture et fermeture d un fichier .. La fonctionfopen.. La fonctionfclose.. Les entr ees-sorties format ees .. La fonction d ecriturefprintf.
6 La fonction de saisiefscanf.. Impression et lecture de caract`eres .. Relecture d un caract`ere .. Les entr ees-sorties binaires .. Positionnement dans un fichier .. 867 La Programmation Principes el ementaires .. La compilation s epar ee .. Fichier en-t ete d un fichier source .. Variables partag ees .. L utilitairemake.. Principe de base .. Cr eation d unMakefile.. Macros et abbr eviations .. R`egles g en erales de compilation .. 97A La librairie Entr ees-sorties< >.. Manipulation de fichiers .. Entr ees et sorties format ees .. Impression et lecture de caract`eres.
7 Manipulation de caract`eres< >.. Manipulation de cha nes de caract`eres< >.. Fonctions math ematiques< >.. Utilitaires divers< >.. Allocation dynamique .. Conversion de cha nes de caract`eres en nombres .. G en eration de nombres pseudo-al eatoires .. Arithm etique sur les entiers .. Recherche et tri .. Communication avec l environnement .. 1056 Table des mati` Date et heure< >.. 106B Le d ebogueur D emarrergdb.. Quittergdb.. Ex ecuter un programme sousgdb.. Terminaison anormale du programme .. Afficher les donn ees .. Appeler des fonctions .. Modifier des variables.
8 Se d eplacer dans la pile des appels .. Poser des points d arr et .. G erer les points d arr et .. Les points d arr et conditionnels .. Ex ecuter un programme pas `a pas .. Afficher la valeur d une expression `a chaque point d arr et .. Ex ecuter automatiquement des commandes aux points d arr et .. Les raccourcis des noms de commande .. Utiliser l historique des commandes .. Interface avec le shell .. R esum e des principales commandes .. 124 Bibliographie127 Index128 Liste des tableaux7 Liste des Codes ASCII des caract`eres imprimables .. Les types entiers .. Les types flottants .. R`egles de priorit e des op erateurs.
9 Formats d impression pour la fonctionprintf.. Formats de saisie pour la fonctionscanf.. 328 Liste des tableaux9 Chapitre 1 Les bases de la Programmation en HistoriqueLe 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, BrianKernighan 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, plusieursgroupes 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 ; cetravail s acheva en 1989 par la d efinition de la norme ANSI C.
10 Celle-ci fut reprise telle quellepar l ISO ( international standards Organization) en 1990. C est ce standard, ANSI C, qui estd ecrit dans le pr esent La compilationLe 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 ecomposeen fait en 4 phases successives 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 decaract`eres, inclusion d autres fichiers source.)