- Au sujet de l'auteur
- Au sujet de ce manuel
- Les notions supposées connues du lecteur
- Un mot sur les problèmes de traduction
- Conventions syntaxiques
- Remerciements
- Les versions du langage C
- Langage et bibliothèque standard
- Les phases de
compilation Les jeux de caractères- Les unités lexicales
- Les mots-clés
- Attention
- Les identificateurs
- Les mots-clés
- Les commentaires
- Attention
- Les types de base
- Les caractères
- Attention
- Les entiers
- Les flottants
- Les caractères
- Les constantes
- Les constantes entières
- Attention
- Les constantes caractères
- Les
cas particuliers - Note
- Les
- Les constantes flottantes
- Les constantes entières
- Les chaî
nes de caractères littérales - Les constantes nommées
- Les #define
- Attention
- Les énumérations
- Remarque
- Les #define
- Déclarations de variables ayant un type de base
- Les opérateurs les plus usuels
- L'affectation
- L'addition
- La soustraction
- La multiplication
- La division
- L'opérateur modulo
- Les opérateurs de comparaison
- Les instructions les plus usuelles
Instruction expression- Remarque
- Instruction composée
- Remarques sur la syntaxe
- Instruction if
- Remarques sur la syntaxe
- Remarques sur la sémantique
- Exemples d'instructions if
- Inclusion de source
- Les procédures et les fonctions
- Définition d'une fonction
- Exemple
- Instruction return
- Les paramètres formels
- Attention
- Appel d'une fonction
- Attention
- Les procédures
- Exemple
- Problème de vocabulaire
- Fonctions imbriquées
- Récursivité
- Référence à une fonction externe
- Comprendre la documentation de la bibliothèque standard
- Les fonctions
dans le style K&R- Remarque
- Définition d'une fonction
- Impression formattée
- Fichier d'include
Structure d'un programme- Terminaison d'un programme
- Mise en uvre du compilateur C sous UNIX
- Exercice
- Récréation
- Les tableaux
- Déclaration de tableaux dont les éléments ont un type de base
- Initialisation d'un tableau
- Cas particulier des tableaux de caractères
- Référence à un élément d'un tableau
- Chaînes et tableaux de caractères
- Les instructions itératives
- Instruction for
- Remarques
- Exemple de boucle for
- Instruction while
- Instruction do
- Instruction break
- Exemple
- Instruction continue
- Exemple
- Instruction for
- Les opérateurs
- Opérateur pré et postincrément
- Exemples
- Opérateur pré et postdécrément
- Exemples
- Quelques utilisations typiques de ces opérateurs
- Utilisation dans les instructions expression
- Utilisation dans les instructions itératives
- Opérateur et logique
- Remarque sur la sémantique
- Exemples d'utilisation
- Opérateur ou logique
- Exemples
- Opérateur non logique
- Opérateur pré et postincrément
- Exercice
- Notion de pointeur
- Déclarations de variables de type pointeur vers les types de base
- Type de pointeur générique
- Note
- Opérateur adresse de
- Opérateur d'indirection
- Remarque
- Devinette
- Exercice
- Pointeurs et opérateurs additifs
- Opérateurs + et -
- Opérateurs ++ et -
- Différence de deux pointeurs
- Exercice
- Passage de paramètres
- Les besoins du programmeur
- Comment les langages de programmation satisfont ces besoins
- La stratégie du langage C
- Discussion
- Une dernière précision
- Exercice
- Lecture formattée
- Valeur rendue
- Attention
- Les dernières instructions
- Instruction switch
- Discussion
- Remarque
- Instruction goto
- Instruction nulle
- Attention
- Instruction switch
- Exercice
- Commentaire de la solution
- Récréation
- Réponse de la devinette
- Conversion des tableaux
- Règle :
- Remarques
- L'opérateur d'indexation
- conséquence numéro 1
- conséquence numéro 2
- conséquence numéro 3
- Passage de tableau en paramètre
- Remarque
- Modification des éléments d'un tableau passé en paramètre
- Interdiction de modification des éléments d'un tableau passé en paramètre
- Conversion des chaînes littérales
- Règle
- Retour sur printf
- Exercice
- Tableaux multidimensionnels
- Déclarations
- Accès aux éléments
- Passage en paramètre
- Initialisation
- Exercice
- Tableau de pointeurs
- Cas général
- Première méthode
- Deuxième méthode
- Troisième méthode
- Tableaux de pointeurs vers des chaînes
- Paramètres d'un programme
- Cas général
- Tableau et pointeur, c'est la même chose ?
- Commentaires
- Cas particulier des chaînes littérales
- Récréation
- Pointeur invalide
- Ouverture et fermeture de fichiers
- Ouverture d'un fichier : fopen
- Utilisation
- Sémantique des paramètres
- Valeur rendue
- Conditions particulières et cas d'erreur
- Les voies de communication standard
- Utilisation typique de fopen
- fermeture d'un fichier : fclose
- Utilisation
- Sémantique des paramètres
- Valeur rendue
- Utilisation typique
- Ouverture d'un fichier : fopen
- Lecture et écriture par caractère sur fichier
- lecture par caractère : fgetc
- Utilisation
- Sémantique des paramètres
- Description
- Valeur rendue
- Utilisation typique
- lecture par caractère : getc
- lecture par caractère : getchar
- Utilisation
- Description
- écriture par caractère : fputc
- Utilisation
- Sémantique des paramètres
- Description
- Valeur rendue
- Utilisation typique
- écriture par caractère : putc
- écriture par caractère : putchar
- Utilisation
- Description
- lecture par caractère : fgetc
- Lecture et écriture par lignes sur fichier
- lecture par ligne : fgets
- Utilisation
- Sémantique des paramètres
- Valeur rendue
- Description
- Utilisation typique
- lecture par ligne : gets
- Utilisation
- Sémantique des paramètres
- Valeur rendue
- Description
- écriture par chaîne : fputs
- Utilisation
- Sémantique des paramètres
- Valeur rendue
- Description
- Utilisation typique
- écriture par chaîne : puts
- Utilisation
- Sémantique des paramètres
- Valeur rendue
- Description
- lecture par ligne : fgets
- E/S formattées sur fichiers
- Écriture formattée : fprintf
- Utilisation
- Sémantique des paramètres
- Valeur rendue
- Présentation
- Les séquences d'échappement
- Écriture formattée : printf
- Utilisation
- Description
- Écriture formattée dans une chaîne : sprintf
- Utilisation
- Description
- Exemples d'utilisation des formats
- Entrées formattées : fscanf
- Utilisation
- Sémantique des paramètres
- Valeur rendue
- Description
- Quelques définitions
- Les séquences d'échappement
- Algorithme de fscanf
- Remarques sur la gestion des espaces blancs
- Entrées formattées : scanf
- Utilisation
- Description
- Entrées formattées depuis une chaîne : sscanf
- Utilisation
- Description
- Écriture formattée : fprintf
- Récréation
- Exercice 1
- Exercice 2
- Notion de structure
- Déclaration de structure
- Première méthode
- Deuxième méthode
- Troisième méthode
- Initialisation d'une structure
- Opérateurs sur les structures
- Accès aux membres des structures
- Affectation de structures
- Comparaison de structures
- Tableaux de structures
- Exercice
- Pointeurs vers une structure
- Structures dont un des membres pointe vers une structure du même type
- Accès aux éléments d'une structure pointée
- Passage de structures en paramètre
- Attention
- Détermination de la taille allouée à un type
- Retour sur la conversion des tableaux
- Allocation et libération d'espace pour les structures
- Allocation d'espace : fonctions malloc et calloc
- Allocation d'un élément : fonction malloc
- Allocation d'un tableau d'éléments : fonction calloc
- Libération d'espace : procédure free
- Allocation d'espace : fonctions malloc et calloc
- Exercice
- Les champs de bits
- Généralités
- Contraintes
- Les énumérations
- Les unions
- Accès aux membres de l'union
- Utilisation pratique des unions
- Une méthode pour alléger l'accès aux membres
- Les conversions de types
- Utilité des conversions
- Ce qu'il y a dans une conversion
- L'ensemble des conversions possibles
- Conversions vers un type entier
- Conversions vers un type flottant
- Conversion vers un type pointeur
- Conversion vers le type void
- Les situations de conversions
- La promotion des entiers
- Domaine d'application
- La règle
- Les conversions arithmétiques habituelles
- Domaine d'application
- La règle
- Discussion
- Les surprises des conversions
- Recommandations
- Les opérateurs
- Opérateur non bit à bit
- Opérateur et bit à bit
- Opérateur ou bit à bit
- Opérateur ou exclusif bit à bit
- Opérateur décalage à gauche
- Opérateur décalage à droite
- Opérateur conditionnel
- Exemples
- Opérateur virgule
- Remarque
- Opérateurs d'affectation composée
- Opérateur conversion
- Note
- Exemples d'utilisation
- Sémantique des expressions
- Opérateurs d'adressage
- Priorité et associativité des opérateurs
- Discussion
- Recommandation
- Ordre d'évaluation des opérandes
- Récréation
- La version shell
- La version fortran
- La version C
- Traitement de macros
- Les macros sans paramètres
- Exemple de mauvaise utilisation
- Définition de macro à l'invocation du compilateur
- Macros prédéfinies
- Les macros avec paramètres
- Attention
- Exemple
- Exemple de mauvaise utilisation
- Les pièges des macros
- Pièges des priorités d'opérateurs
- Pièges des effets de bord
- Macros générant des instructions
- Recommandation
- Les macros sans paramètres
- Compilation conditionnelle
- Commande #if
- Commande #if simple
- Commande #if avec #else
- Commande #if avec #elif
- Commandes #ifdef et #ifndef
- L'opérateur defined
- La commande #error
- Usage
- Commande #if
- Récréation
- Déclarations de définition et de référence
- Les déclarations de définition
- Les déclarations de référence
- Déclarations de variables
- Déclarations de fonctions
- Déclarations d'étiquettes de structures et union
- Portée des déclarations
- Visibilité des identificateurs
- Les espaces de noms
- Position du problème
- Les espaces de noms du langage C
- Remarque
- Durée de vie
- Discussion
- Classes de mémoire
- Position du problème
- Les spécificateurs de classe de mémoire
- Discussion
- La compilation séparée
- Généralités
- Méthode des réfs et des défs
- Méthode du common
- La méthode du langage C
- Les contraintes
- En pratique
- Le cas des fonctions
- Généralités
- Définition de types
- Utilité des typedef
- Restriction d'un type de base
- Définition de type structure
- Définition de types opaques
- Qualificatifs de type
- Qualificatif const
- Qualificatif volatile
- Fonction à nombre variable de paramètres
- Exemple 1
- Exemple 2
- Syntaxe des déclarations
- Exemples
- Sémantique des déclarations
- Discussion sur les déclarations
- En pratique
- Un outil : cdecl
- Diagnostic
- Manipulation de caractères <ctype.h>
- Environnement local <locale.h>
- Mathématiques <math.h>
- Fonctions trigonométriques et hyperboliques
- Fonctions exponentielles et logarithmiques
- Fonctions diverses
- Branchements non locaux <setjmp.h>
- Manipulation des signaux <signal.h>
- Nombre variable de paramètres <stdarg.h>
- Entrées sorties <stdio.h>
- Opérations sur les fichiers
- Accès aux fichiers
- Entrées-sorties formattées
- Entrées-sorties caractères
- Entrées-sorties binaires
- Position dans un fichier
- Gestion des erreurs
- Utilitaires divers <stdlib.h>
- Conversion de nombres
- Génération de nombres pseudo-aléatoires
- gestion de la mémoire
- Communication avec l'environnement
- Recherche et tri
- Arithmétique sur les entiers
- Gestion des caractères multi-octets
- Manipulation de chaînes <string.h>
- Manipulation de la date et de l'heure <time.h>
- Les normes
- Pour en savoir plus
- Le code
ascii - Les codes ascii en octal
- Les codes ascii en hexadécimal
- Les codes ascii en décimal
- Les codes ISO-Latin-1
- Les unités lexicales
- Les mots-clés
- Les identificateurs
- Les constantes
- Les chaînes littérales
- Les opérateurs
- La ponctuation
- Nom de fichier d'inclusion
- Les nombres du préprocesseur
- Les expressions
- Les déclarations
- Les instructions
- Définitions externes
- Directives du préprocesseur
- Références croisées de la grammaire
- Les types de base
- Les tableaux
- Les pointeurs
- Les fonctions
- Les énumérations
- Les structures, unions et champs de bits
- Les qualificatifs
- Erreur avec les opérateurs
- Erreur sur une comparaison
- Comment est ce possible ?
- Erreur sur l'affectation
- Comment est ce possible ?
- Erreur sur une comparaison
- Erreurs avec les macros
- Un #define n'est pas une déclaration
- Un #define n'est pas une initialisation
- Erreur sur macro avec paramètres
- Erreur avec les effets de bord
- Erreurs avec l'instruction if
- Erreurs avec les commentaires
- Erreurs avec les priorités des opérateurs
- Erreur avec l'instruction switch
- Oubli du break
- Erreur sur le default
- Erreur sur les tableaux multidimensionnels
- Erreur avec la compilation séparée
Enregistrer un commentaire