Comment Ca Marche - Communauté informatique  
   
Accueil - Encyclopédie informatiqueTélécharger l'encyclopédieContribuer à cet article

Langage C - Caractéristiques

Caractéristiques du langage C Encyclopédie


Le fichier source

Le fichier source d'un programme écrit en langage C est un simple fichier texte dont l'extension est par convention .c.

Note d'un visiteur (J.Grondin) :
L'extension est en minuscules. Le .C (majuscule) est interprété par certains compilateurs comme l'extension du C++ (gcc). Comme il existe de petites différences entre la compilation d'un programme en C et la compilation de ce même programme en C++, cela peut parfois poser des problèmes.

Ce fichier source doit être un fichier texte non formaté, c'est-à-dire un fichier texte dans sa plus simple expression, sans mise en forme particulière ou caractères spéciaux (il contient uniquement les caractères ASCII de base).

Lorsque le programme est prêt à être « essayé », il s'agit de le compiler (le traduire en langage machine).
De nombreux compilateurs C existent : sous les systèmes de type UNIX par exemple, le compilateur C est fourni en standard, si bien que la programmation en langage C est aisée sous ce type de système. La compilation sous UNIX se fait par la ligne de commande suivante :

cc fichier.c

Aspect d'un programme en C

Un programme écrit en langage C comporte une fonction principale appelée main() renfermant les instructions qui doivent être exécutées. Celles-ci sont comprises entre des accolades qui suivent le nom de la fonction. Cela vous semble tombé du ciel si vous n'avez jamais programmé en C, mais il faut admettre pour l'instant la manière d'écrire un programme en C. La finalité de cette écriture vous sera dévoilée au cours des chapitres suivants...

Un programme C de base ressemblera donc à ceci :

main()
{

	printf("Ceci est votre premier programme");

}

Le programme présenté ci-dessus contient donc une fonction principale main() (qui, rappelons-le, est essentielle car c'est par cette fonction que le programme s'exécute) contenant une instruction imprimant à l'écran le message « Ceci est votre premier programme » grâce à la fonction printf().

Note d'un visiteur (Emmanuel D.) :
  1. Le type retourné par main() est int. La norme actuelle du C (C99) impose que le type soit explicite, il faut donc écrire :
    int main()
  2. Il est recommandé de définir une fonction sous sa forme prototypée. Dans ce cas, main() n'ayant pas de paramètres, on l'indique avec void.
    int main(void)
  3. printf() est une fonction avec un nombre variable de paramètres. Il est obligatoire de fournir un prototype à cette fonction. Il manque par exemple :
    #include <stdio.h>
  4. printf() produit une émission de caractères en séquence vers stdout. Certaines implémentations de stdout étant bufférisées, il est recommandé de terminer la chaîne émise par un '\n', ce qui déclenche l'émission effective. Sinon, il est possible de la forcer avec fflush(stdout) :
    printf ("Ceci est votre premier programme\n");
  5. Bien que la norme actuelle (C99) autorise main() à ne pas avoir de return explicite (dans ce cas on a un return 0 implicite), cette pratique est peu recommandée pour des questions de compatibilité avec la norme courante (C90) qui exige qu'une fonction retournant autre chose que void ait un return quelque chose explicite.
    return 0;
Je propose :
#include <stdio.h>

int main (void)
{

printf ("Ceci est votre premier programme\n");

return 0;

}

Typologie

La manière d'écrire les choses en langage C a son importance. Le langage C est par exemple sensible à la casse (en anglais case sensitive), cela signifie qu'un nom contenant des majuscules est différent du même nom écrit en minuscules. Ainsi, les spécifications du langage C précisent que la fonction principale doit être appelée main() et non Main() ou MAIN().

De la même façon, on remarquera que la fonction printf() est écrite en minuscules.
D'autre part, l'instruction printf() se termine par un point-virgule. Ce détail a son importance, car en langage C, toute instruction se termine par un point-virgule.

Ajout de commentaires

Lorsqu'un programme devient long et compliqué, il peut être intéressant (il est même conseillé) d'ajouter des lignes de commentaires dans le programme, c'est-à-dire des portions du fichier source qui ont pour but d'expliquer le fonctionnement du programme sans que le compilateur ne les prenne en compte (car il générerait une erreur).

Pour ce faire, il faut utiliser des balises qui vont permettre de délimiter les explications afin que le compilateur les ignore et passe directement à la suite du fichier.
Ces délimiteurs sont /* et */. Un commentaire sera donc noté de la façon suivante :

/*Voici un commentaire !*/

En plus des symboles /* et */, fonctionnant un peu comme des parenthèses, le symbole // permet de mettre en commentaire toute la ligne qui la suit (i.e. les caractères à droite de ce symbole sur la même ligne).

Il convient toutefois d'utiliser préférablement la notation /* */ que //, car c'est beaucoup plus joli et plus propre. La notation // est généralement réservée pour mettre en commentaire une ligne de code que l'on souhaite désactiver temporairement.

Il y a toutefois quelques règles à respecter :
  • Les commentaires peuvent être placés n'importe où dans le fichier source
  • Les commentaires ne peuvent contenir le délimiteur de fin de commentaire (*/)
  • Les commentaires ne peuvent être imbriqués
  • Les commentaires peuvent être écrits sur plusieurs lignes
  • Les commentaires ne peuvent pas couper un mot du programme en deux

Trucs & astuces pertinents trouvés dans la base de connaissances

09/01 20h26 C/C++ Erreur de segmentation (Langage C)
30/11 22h37 Comment débuter, quel langage? (Langages)
15/11 02h50 Langage informatique=Langage de programmation (Mythes et légendes)
21/09 09h44 Critères de choix d'un langage/framework (Programmation)
21/01 03h06 Envoyer un mail avec pièce jointe (Langages)
22/11 23h49 Ecrire en alphabet arabe (Windows)
04/11 15h50 Rediriger en fonction de la langue du visiteur (PHP)
Langage C Plus d'astuces sur « Langage C »

Discussions pertinentes trouvées dans le forum

29/03 02h24 barre langues affichage [barre de langues] probleme d'affichage Windows 14/02 10h21->rafik46
15/09 20h11 suse langue Suse langue Linux/Unix 21/09 17h31->Yoan27
28/12 12h44 ajouter langue arabe clavier français ajouter une langue arabe au clavier français Windows 21/02 23h50->marouen26
03/06 12h59  [Forum] Langage SMS Suggestions 12/06 02h18->Clarckos16
20/11 14h20 choix langage base donnée projet Choix d'un langage+base de donnée pour projet Développement 21/11 21h12->sebsauvage14
30/03 09h35 langage pointeurs liste. Langage C pointeurs, creation de liste. Développement 08/04 00h34->mamiemando12
03/09 02h58 langage remplacer for if [langage C] comment remplacer[for] par [if] Développement 05/09 23h07->mamiemando12
16/02 12h22 langage c jeu [Langage C] Jeu Développement 16/02 20h28->UNIX/VI/SHELL11
06/04 17h39 logiciel xsd xml gui quel langage [Logiciel XSD XML avec GUI]Quel langage Développement 08/04 13h42->sebsauvage9
28/06 15h02 quel language choisir quel language choisir ?? Développement 29/06 18h42->sebsauvage9
Discussion fermée Problème résolu Langage C Plus de discussions sur « Langage C »

Ce document intitulé « Langage C - Caractéristiques » issu de l'encyclopédie informatique Comment Ça Marche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.