Accueil
Rechercher:
sur developpez.com sur les forums
Forums | Tutoriels | F.A.Q's | Participez | Hébergement | Contacts
Club Emploi Blogs   TV   Dév. Web PHP XML Python Autres 2D-3D-Jeux Sécurité Windows Linux PC Mac
Accueil Conception Java DotNET Visual Basic  C  C++ Delphi MS-Office SQL & SGBD Oracle  4D  Business Intelligence
FORUMS C FAQs C TUTORIELS C LIVRES C COMPILATEURS C SOURCES GTK+

Le langage C

Date de publication : 27 février 2005 , Date de mise à jour : 13 Juillet 2007

Par Henri Garreta
 

La transformation d'un texte écrit en langage C en un programme exécutable par l'ordinateur se fait en deux étapes : la compilation et l'édition de liens. La compilation est la traduction des fonctions écrites en C en des procédures équivalentes écrites dans un langage dont la machine peut exécuter les instructions. Le compilateur lit toujours un fichier, appelé fichier source, et produit un fichier, dit fichier objet.
Page 1
I. éléments de base
I-A. Structure générale d'un programme
I-B. Considérations lexicales
I-B-1. Présentation du texte du programme
I-B-2. Mots-clés
I-B-3. Identificateurs
I-B-4. Opérateurs
I-C. Constantes littérales
I-C-1. Nombres entiers
I-C-2. Nombres flottants
I-C-3. Caractères et chaines de caractères
I-C-4. Expressions constantes
I-D. Types fondamentaux
I-D-1. Nombres entiers et caractères
I-D-2. Types énumérés
I-D-3. Nombres flottants
I-E. Variables
I-E-1. Syntaxe des déclarations
I-E-2. Visibilité des variables
I-E-3. Allocation et durée de vie des variables
I-E-4. Initialisation des variables
I-E-5. Variables locales statiques
I-E-6. Variables critiques
I-E-7. Variables constantes et volatiles
I-F. Variables, fonctions et compilation séparée
I-F-1. Identificateurs publics et privés
I-F-2. Déclaration d'objets externes
Page 2
II. Opérateurs et expressions
II-A. Généralités
II-A-1. Lvalue et rvalue
II-A-2. Priorité des opérateurs
II-B. Présentation détaillée des opérateurs
II-B-1. Appel de fonction ()
II-B-2. Indexation []
II-B-3. Sélection .
II-B-4. Sélection dans un objet pointé ->
II-B-5. Négation !
II-B-6. Complément à 1 ~
II-B-7. Les célèbres ++ et --
II-B-8. Moins unaire -
II-B-9. Indirection *
II-B-10. Obtention de l'adresse &
II-B-11. Opérateur sizeof
II-B-12. Conversion de type (\cast" operator)
II-B-13. Opérateurs arithmétiques
II-B-14. Décalages << >>
II-B-15. Comparaisons == != < <= > >=
II-B-16. Opérateurs de bits & j ^
II-B-17. Connecteurs logiques && et ||
II-B-18. Expression conditionnelle ? :
II-B-19. Affectation =
II-B-20. Autres opérateurs d'affectation += *= etc.
II-B-21. L'opérateur virgule ,
II-C. Autres remarques
II-C-1. Les conversions usuelles
II-C-2. L'ordre d'évaluation des expressions
II-C-3. Les opérations non abstraites
Page 3
III. Instructions
III-A. Syntaxe
III-B. Présentation détaillée des instructions
III-B-1. Blocs
III-B-2. Instruction-expression
III-B-3. Etiquettes et instruction goto
III-B-4. Instruction if...else...
III-B-5. Instructions while et do...while
III-B-6. Instruction for
III-B-7. Instruction switch
III-B-8. Instructions break et continue
III-B-9. Instruction return
Page 4
IV. Fonctions
IV-A. Syntaxe ANSI ou \avec prototype"
IV-A-1. Définition
IV-A-2. Type de la fonction et des arguments
IV-A-3. Appel des fonctions
IV-A-4. Déclaration \externe" d'une fonction
IV-B. Syntaxe originale ou \sans prototype"
IV-B-1. Déclaration et définition
IV-B-2. Appel
IV-B-3. Coexistence des deux syntaxes
IV-C. Arguments des fonctions
IV-C-1. Passage des arguments
IV-C-2. Arguments de type tableau
IV-C-3. Arguments par adresse
IV-C-4. Arguments en nombre variable
Page 5
V. Objets structurés
V-A. Tableaux
V-A-1. Cas général
V-A-2. Initialisation des tableaux
V-A-3. Chaines de caractères
V-B. Structures et unions
V-B-1. Structures
V-B-2. Unions
V-B-3. Champs de bits
V-C. Enumérations
V-D. Déclarateurs complexes
V-D-1. Cas des déclarations
V-D-2. Pointeurs et tableaux constants et volatils
V-D-3. La déclaration typedef
V-D-4. Cas des types désincarnés
Page 6
VI. Pointeurs
VI-A. Généralités
VI-A-1. Déclaration et initialisation des pointeurs
VI-A-2. Les pointeurs génériques et le pointeur NULL
VI-B. Les pointeurs et les tableaux
VI-B-1. Arithmétique des adresses, indirection et indexation
VI-B-2. Tableaux dynamiques
VI-B-3. Tableaux multidimensionnels
VI-B-4. Tableaux multidimensionnels dynamiques
VI-B-5. Tableaux de chaines de caractères
VI-B-6. Tableaux multidimensionnels formels
VI-B-7. Tableaux non nécessairement indexés à partir de zéro
VI-B-8. Matrices non dynamiques de taille inconnue
VI-C. Les adresses des fonctions
VI-C-1. Les fonctions et leurs adresses
VI-C-2. Fonctions formelles
VI-C-3. Tableaux de fonctions
VI-C-4. Flou artistique
VI-D. Structures récursives
VI-D-1. Déclaration
VI-D-2. Exemple
VI-D-3. Structures mutuellement récursives
Page 7
VII. Entrées-sorties
VII-A. Flots
VII-A-1. Fonctions générales sur les flots
VII-A-2. Les unités standard d'entrée-sortie
VII-B. Lecture et écriture textuelles
VII-B-1. Lecture et écriture de caractères et de chaines
VII-B-2. Ecriture avec format printf
VII-B-3. Lecture avec format scanf
VII-B-4. A propos de la fonction scanf et des lectures interactives
VII-B-5. Les variantes de printf et scanf
VII-C. Opérations en mode binaire
VII-C-1. Lecture-écriture
VII-C-2. Positionnement dans les fichiers
VII-D. Exemples
VII-D-1. Fichiers \en vrac"
VII-D-2. Fichiers binaires et fichiers de texte
VII-D-3. Fichiers en accès relatif
VII-E. Les fichiers de bas niveau d'UNIX
Page 8
VIII. Autres éléments du langage C
VIII-A. Le préprocesseur
VIII-A-1. Inclusion de fichiers
VIII-A-2. Définition et appel des \macros"
VIII-A-3. Compilation conditionnelle
VIII-B. La modularité de C
VIII-B-1. Fichiers en-tête
VIII-B-2. Exemple : stdio.h
VIII-C. Deux ou trois choses bien pratiques...
VIII-C-1. Les arguments du programme principal
VIII-C-2. Branchements hors fonction : setjmp.h
VIII-C-3. Interruptions : signal.h
VIII-D. La bibliothèque standard
VIII-D-1. Aide à la mise au point : assert.h
VIII-D-2. Fonctions utilitaires : stdlib.h
VIII-D-3. Traitement de chaines : string.h
VIII-D-4. Classification des caractères : ctype.h
VIII-D-5. Fonctions mathématiques : math.h
VIII-D-6. Limites propres à l'implémentation : limits.h, float.h


Valid XHTML 1.1!Valid CSS!

Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur.
Responsable bénévole de la rubrique C : Arnaud Feltz (buchs) - Contacter par EMail :
Vos questions techniques : forum d'entraide C - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Copyright © 2000-2008 www.developpez.com - Legal informations.