Langage C : un fichier source

Introduction

Après avoir créé un nouvel espace de travail et lui avoir ajouté un nouveau projet, nous allons créer un nouveau fichier dans lequel nous introduirons le code source.

Si nous utilisons visual C++, nous y parvenons par le menu File/New...
Une fenêtre permet la sélection par l'onglet Files d'un C++ Source File, qu'il faut nommer et ajouter au projet. Ce fichier source peut porter le même nom que le projet, car l'extension .cpp (généralement utilisé pour le C++, et .c pour le C) lui est automatiquement ajoutée, alors que le fichier du projet est suivi de l'extension .dsp.
Comme localisation, dans le cadre de nos cours nous grouperons les fichiers source dans un unique répertoire nommé src, afin de gérer plus aisément le travail à domicile.

Qu'est-ce qu'un fichier source?

Un fichier source est un simple fichier texte non formaté (uniquement les caractères du code ASCII, donc pas sous une extension telle que ".doc").

Contents Haut

Que comporte un programme en C?

Un programme en C comporte différentes fonctions, qui réalisent des opérations sur des données. Par programme, il doit exister une et une seule fonction qui portera le nom de "main" (qui signifie principale en anglais).

Le programme se présente donc de la manière suivante:


Code c (main) (4 lignes) :
  1. void main (void)
  2. {
  3. instructions;
  4. }

Remarque

Le langage C est sensible à la casse:

  • main est la fonction principale du programme.
  • MAIN est une autre fonction.

Les commentaires en  C

Quelques règles en C:

  • /* indique le début du commentaire.
  • */ indique la fin du commentaire.
  • Un commentaire peut prendre plusieurs lignes.
  • Un commentaire se place n'importe où dans le code, mais il ne peut couper un mot du programme.
  • Les commentaires ne peuvent contenir le signe de fin de commentaire.
  • Depuis la norme C99, nous avons la la possibilité de placer des commentaires sur une seule ligne en C comme en C++.

Code c (commentaires) (11 lignes) :
  1. /*Exemple de commentaire en C*/
  2. /*
  3. Le commentaire peut se trouver
  4. sur plusieurs lignes
  5. */
  6. instruction1;/*Correct*/instruction2;
  7. instruct/*Mauvais commentaire*/ion3;
  8. /*La fermeture */ ne peut être contenue dans le commentaire*/
  9. instruction4;
  10. //Commentaire sur une ligne (C++)
  11. instruction5

Contents Haut

Exemple de fichier source

Ce qui suit est un fichier source (traitement_a.c) qui nous permet d'avoir une première vue d'ensemble. Pas de panique, ce fichier est découpé en blocs plus explicites à la page suivante.

  1. /* traitement_a.c
  2. création du tableau avec introduction de valeurs
  3. impression du tableau de la composante i jusqu' à la composante q */
  4. #include <stdio.h>
  5. #define NMAX 20
  6. void lect (int z[],int &n)
  7. void main (void) /* fonction d'impression des val entre les composantes i et q*/
  8. {
  9. int t[nmax];
  10. int i=0,q=0,nmax,n;
  11. int continu =0;
  12. lect(t,n);
  13. printf ("\nintroduire la composante i\n(valeur entre 0 non compris,"
  14. "et %d non compris):", n);
  15. scanf ("%d", &i);
  16. printf ("\nintroduire la composante q\n(valeur entre %d non compris,"
  17. "et %d non compris)\nq > i :",i, n);
  18. scanf ("%d", &q);
  19. if (i<q)
  20. for (nmax=i; nmax<=q; nmax++)
  21. printf ("%d\n", t[nmax]);
  22. else
  23. printf ("\n\n\nATTENTION : q <= i !!!");
  24. while (i<=q && continu==1)
  25. {
  26. printf ("\n\n\nvoulez-vous continuer ?\n1 pour continuer :");
  27. scanf ("%d", &continu);
  28. while (continu==1)
  29. {
  30. printf ("\nintroduire la composante i\n(valeur entre 0 non compris,"
  31. "et %d non compris):", n);
  32. scanf ("%d", &i);
  33. printf ("\nintroduire la composante q\n(valeur entre %d non compris,"
  34. "et %d non compris)\nq > i :",i, n);
  35. scanf ("%d", &q);
  36. if (i<q)
  37. for (nmax=i; nmax<=q; nmax++)
  38. printf ("%d\n", t[nmax]);
  39. else
  40. printf ("\n\n\nATTENTION : q <= i !!!");
  41. }
  42. }
  43. }
  44. void lect (int z[],int &n) /* sous fonction; permet l'affectation des val du tableau*/
  45. {
  46. int a;
  47. printf("\nintroduire un nbre\n0 pour terminer :");
  48. scanf ("%d", &a);
  49. n=0; /* afin de remplir le tableau depuis la 1ère case */
  50. z[n]=a;
  51. n++;
  52. while (a && n<NMAX) /* eviter de dépasser le nbre d'espaces mem prévus */
  53. {
  54. printf("\nintroduire un nbre\n0 pour terminer :");
  55. scanf ("%d", &a);
  56. z[n]=a;
  57. n++;
  58. }
  59. }

Contents Haut

English translation

You have asked to visit this site in English. For now, only the interface is translated, but not all the content yet.

If you want to help me in translations, your contribution is welcome. All you need to do is register on the site, and send me a message asking me to add you to the group of translators, which will give you the opportunity to translate the pages you want. A link at the bottom of each translated page indicates that you are the translator, and has a link to your profile.

Thank you in advance.

Document created the 19/03/2002, last modified the 26/10/2018
Source of the printed document:https://www.gaudry.be/en/c-fichier-cpp.html

The infobrol is a personal site whose content is my sole responsibility. The text is available under CreativeCommons license (BY-NC-SA). More info on the terms of use and the author.