Langage C 1BTS : informatique Cours : langage C 1. Présentation du langage C 1.

Langage C 1BTS : informatique Cours : langage C 1. Présentation du langage C 1.1. Historique Langage de programmation développé en 1970 par Dennie Ritchie aux Laboratoires Bell d'AT&T. Il est l'aboutissement de deux langages : • BPCL développé en 1967 par Martin Richards. • B développé en 1970 chez AT&T par Ken Thompson. Il fut limité à l'usage interne de Bell jusqu'en 1978 date à laquelle Brian Kernighan et Dennie Ritchie publièrent les spécifications définitives du langage : «~The C programming Language~». Au milieu des années 1980 la popularité du langage était établie. De nombreux compilateurs ont été écrits, mais comportant quelques incompatibilités portant atteinte à l'objectif de portabilité. Il s'est ensuivi un travail de normalisation effectué par l'ANSI (American National Standard Institue) qui a abouti en 1988 avec la parution par la suite du manuel : «~The C programming Language - 2ème édition~». 1.2. Intérêts du langage • Langage polyvalent permettant le développement de systèmes d'exploitation, de programmes applicatifs scientifiques et de gestion. • Langage structuré. • Langage évolué qui permet néanmoins d'effectuer des opérations de bas niveau («~assembleur d'Unix~»). • Portabilité (en respectant la norme !) due à l'emploi de bibliothèques dans lesquelles sont reléguées les fonctionnalités liées à la machine. • Grande efficacité et puissance. 1.3. Qualités attendues d'un programme • Clarté • Simplicité • Modularité • Extensibilité Moutchou Mohamed 1 Langage C 1BTS : informatique 2. Généralités 2.1. Jeu de caractères Le jeu de caractères utilisé pour ecrire une programme est composé de : • 26 lettres de l'alphabet (minuscules, majuscules) • chiffres 0 à 9 • séquences d'échappement telles : o passage à la ligne (\n), o tabulation (\t), o backspace (\b). • caractères spéciaux : ! * + \ " < # ( = | { > % ) ~ ; ] / ^ - [ : , ? & _ } ' . (espace) Moutchou Mohamed 2 Langage C 1BTS : informatique 2.2. Structure d'un programme C • Un Programme C : est un fichier source entrant dans la composition d’un programme exécutable est fait d’une succession d’un nombre quelconque d'éléments indépendants, qui sont :  des directives pour le préprocesseur (lignes commençant par #),  des constructions de types (struct, union, enum, typedef ),  des déclarations de variables et de fonctions externes,  des définitions de variables et  des définitions de fonctions dont l'une doit s'appeler main et apparaître obligatoirement dans le programme. • Une Fonction est formé:  d’entête (type et nom de la fonction suivis d'une liste d'arguments entre parenthèses),  instruction composée constituant le corps de la fonction. • Instruction composée : délimitée par les caractères { et } • Instruction simple : se termine par ; • commentaire : encadré par les délimiteurs /* et */ • Instruction préprocesseur : commence par # Exemple : #include<stdio.h> #define PI 3.14159 /* calcul de la surface d'un cercle */ main() { float rayon, surface; float calcul(float rayon); printf("Rayon = ? "); scanf("%f", &rayon); surface = calcul(rayon); printf("Surface = %f\n", surface); } /* définition de fonction */ float calcul(float r) { /* définition de la variable locale */ float a; a = PI * r * r; return(a); } 2.3. Compilation et édition des liens 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. Chaque fichier objet est incomplet, insuffisant pour être exécuté, car il contient des appels de fonctions ou des références à des variables qui ne sont pas définies dans le même fichier. Par exemple, le premier programme que vous écrirez contiendra déjà la fonction printf que vous n’aurez certainement pas écrite vous-même. L'édition de liens est l’opération par laquelle plusieurs fichiers objets sont mis ensemble pour se compléter mutuellement : un fichier apporte des définitions de fonctions et de variables auxquelles un autre fichier fait référence et réciproquement. L'éditeur de liens (ou linker) prend en entrée plusieurs fichiers objets et bibliothèques (une variété particulière de fichiers objets) et produit un unique fichier exécutable. 2.4. Identificateurs et mots-clés Moutchou Mohamed 3 Langage C 1BTS : informatique • Identificateur : nom donné aux diverses composantes d'un programme ; variables, constante, tableaux, fonctions. o Formé de lettres et de chiffres ainsi que du caractère _ permettant une plus grande lisibilité. Le 1er caractère doit obligatoirement être une lettre ou bien le caractère _. o Peut contenir jusqu'à 31 caractères minuscules et majuscules. o Les minuscules et les majuscules ne sont pas equivalentes : les identificateurs ligne et Ligne sont différents. Exemples • Identificateurs valides : x y12 somme_1 _temperature noms surface fin_de_fichier TABLE • Identificateurs invalides : 4eme commence par un chiffre x#y caractère non autorisé (#) no-commande caractère non autorisé (-) taux change caractère non autorisé (espace) Moutchou Mohamed 4 • Mots réservés (mots-clés) Certains mots sont réservés par le langage car ils ont une signification particulière. Il est alors interdit d'utiliser un de ces mots comme identificateur. Bien que le compilateur fasse la différence entre majuscules et minuscules et qu'on puisse donc utiliser un de ces mots en majuscules comme identificateur, il est préférable, pour la clarté du source, d'éviter cette attitude de programmation. Types Classes Instructions Autres char auto break case double const continue default float extern do enum int register else sizeof long static for typedef short volatile goto signed if struct return union switch unsigned while void 2.5. Les séparateurs Les différents séparateurs reconnus par le compilateur peuvent avoir plusieurs significations. Type Nom Significations […] Crochets Indice d'accès dans un tableau (...) Parenthèses 1/ Groupement d'expressions (force la priorité) 2/ Isolement des expressions conditionnelles 3/ Déclaration des paramètres d'une fonction 4/ Conversion explicite d'un type (casting) {….} Accolades 1/ Début et fin de bloc d'instructions 2/ Initialisation à la déclaration d'un tableau 3/ Déclaration d'une structure , Virgule 1/ Sépare les éléments d'une liste d'arguments 2/ Concaténation d'instructions ; Point virgule Terminateur d'instruction : Deux points Label . Point Accède à un champ d'une structure -> Flèche ("moins" suivi de "supérieur") Accède à un champ d'un pointeur sur une structure 2.6. Les commentaires Les commentaires permettent de porter des remarques afin de faciliter la lecture d'un programme source. Chaque commentaire est délimité par les combinaisons suivantes "/* Commentaire */" Les commentaires ne sont pas pris en compte par le compilateur et n'augmentent donc pas la taille des programmes exécutables. Les commentaires peuvent tenir sur plusieurs lignes du style : /* Je commente mon programme Je continue mes commentaires J'ai fini mes commentaires */ Les commentaires ne peuvent pas être imbriqués comme dans le style : /* Début Commentaire 1 /* Commentaire 2 */ Fin commentaire 1*/ Remarque : Les compilateurs récents acceptent, comme commentaire, la séquence "//" spécifique au langage "C++" qui permet de ne commenter qu'une ligne ou une partie de la ligne. // Cette ligne est totalement mise en commentaire int i; // Le commentaire ne commence qu'à la séquence "//" 2.7. Les variables Comme tout langage déclaratif, le langage C exige que les variables soient déclarées avant leur utilisation. En fait, pour chaque bloc d'instructions délimité par des accolades "{", il faut déclarer toutes les variables avant que soit écrite la première instruction du bloc. Mais cette règle étant valable pour chaque bloc ; on peut aussi déclarer des variables dans des sous-bloc d'instructions. Exemple : /* Bloc d'instruction n° 1*/ { Déclaration des variables (avant toute instruction du bloc n° 1) Instruction Instruction … /* Sous-bloc d'instruction n° 2 */ { Déclaration des variables (avant toute instruction du bloc n° 2) Instruction Instruction … } … Instruction appartenant au bloc n° 1 } Une variable est définie par plusieurs attributs; certains facultatifs mais ayants alors une valeur par défaut) :  sa classe d'allocation en mémoire ("auto" par défaut)  en cas de variable numérique, l'indication "signé" ou "non-signé" (signé par défaut)  le type de la valeur qu'elle doit stocker (entier par défaut, nombre en virgule flottante, etc.)  son nom (l'identificateur de la variable) Déclaration : [classe] [unsigned/signed] <type> <identificateur>; (n'oubliez pas le point-virgule final) Exemple : static int nb; // Déclaration d'une variable nb de type int de classe static int i; // Déclaration d'une variable i de type int (de classe auto par défaut) Remarque : la notion de classe sera revue plus en détail par la suite du cours. Jusque là, il suffira de ne pas spécifier de classe pour vos variables. Lors de sa création en mémoire, une variable possède n'importe quelle valeur. 3. Élements de base pour debuter 3.1. Les types de base (types simples ou scalaires) Un programme manipule des données de différents types sous la forme de constantes ou de variables. Les types de base correspondent aux types directement supportés par la uploads/Industriel/ cours-de-langage-c.pdf

  • 14
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager