« Introduction au langage C/Premier programme » : différence entre les versions

Contenu supprimé Contenu ajouté
m Formatage, ajout de code
m Robot : Remplacement de texte automatisé (-\n(==={0,3})(?: *)([^\n=]+)(?: *)\1(?: *)\n +\n\1 \2 \1\n)
Ligne 7 :
}}
 
== Introduction ==
Ce chapitre vous permettra d'obtenir toutes les informations nécessaires et détaillées pour construire un programme simple.
 
Les programmes que nous allons faire seront pour la plupart des programmes à affichage dans le mode console.
 
== Le programme ==
Coller le code ci-dessous dans un fichier nommé ''hello.c''.
 
Ligne 42 :
Ensuite il suffit d'exécuter le fichier créé par cette opération (''hello'').
 
== Explications ==
 
=== Commentaires ===
 
Un commentaire en C peut s'écrire de deux manières :
Ligne 61 :
Conseils de codage à respecter : [[b:Conseils de codage en C/Lisibilité des sources#Cartouche d'entête (c_lis_1)|c_lis_1]], [[b:Conseils de codage en C/Lisibilité des sources#Indentation des commentaires (c_lis_3)|c_lis_2]], [[b:Conseils de codage en C/Facilité de modification#Écrire des commentaires fonctionnels (c_mod_2)|c_mod_2]].
 
=== Include ===
 
<source lang="c">
Ligne 85 :
Conseil de codage à respecter : [[b:Conseils de codage en C/Facilité de modification#Pas de code dans les .h (c_mod_9)|c_mod_9]].
 
=== Fonction principale main ===
Chaque programme possède une fonction <code>main</code>. '''La fonction <code>main</code> est obligatoire dans tout programme en C standard.''' C'est le point d'entrée du programme lors de son exécution.
 
Ligne 110 :
Conseil de codage à respecter : [[b:Conseils de codage en C/Lisibilité des sources#Arguments du programme principal (c_lis_10)|c_lis_10]].
 
==== Fonctions ====
* '''Une fonction est une série d'instructions.''' Une fonction peut être appelée par une autre fonction et doit retourner une valeur sauf si elle est du type '''void'''.
* Elle peut prendre des arguments dont les noms et types sont définis entre les parenthèses. Si la fonction n'attend aucun paramètre, on l'indique par le mot réservé '''void''' entre parenthèses.
Ligne 116 :
Conseils de codage à respecter : [[b:Conseils de codage en C/Recherche des erreurs#Prototypes de fonction (c_rec_10)|c_rec_10]], [[b:Conseils de codage en C/Robustesse des programmes#Contrôle des arguments (c_rob_5)|c_rob_5]].
 
==== Retour de valeurs ====
 
<source lang="c">
Ligne 130 :
Conseil de codage à respecter : [[b:Conseils de codage en C/Programmes plus exploitables#Code retour du programme (c_exp_3)|c_exp_3]].
 
=== Utilisation de fonctions ===
 
La bibliothèque standard du langage C fournit les fonctions essentielles d'accès aux entrées et sorties du programme (accès aux fichiers et à l'affichage). Cela peut paraitre peu, mais un programme très complexe peut être entièrement construit à partir de ces fonctions.
Ligne 179 :
Conseil de codage à respecter : [[b:Conseils de codage en C/Robustesse des programmes#Test des codes retours (c_rob_3)|c_rob_3]].
 
== Génération d'un exécutable ==
 
=== La chaine de compilation ===
 
Le but est d'obtenir un fichier exécutable que vous pourrez faire marcher sur votre ordinateur. La chaine de compilation permet de passer du code source d'un programme à un binaire exécutable.
Ligne 192 :
Pour les programmes simples, il est possible de demander au compilateur C d'enchainer les trois phases précédentes et de produire simplement un exécutable compatible avec votre machine.
 
=== Disposer d'un compilateur ===
Vous devez disposer d'un compilateur C.
 
Ligne 199 :
Vous trouverez des conseils de mise en œuvre selon votre plateforme informatique sur le wiki Livre [[b:Exercices en langage C/préparation|Exercices en langage C]].
 
=== Compiler le premier programme ===
 
# Créez un répertoire de travail.
Ligne 210 :
* de nommer le fichier exécutable produit : '''hello.exe''', grâce à l'option -o.
 
=== Exécuter le programme ===
Lancer la commande : hello.exe ou ./hello.exe
 
Ligne 223 :
Conseil de codage à respecter : [[b:Conseils de codage en C/Robustesse des programmes#Compilation stricte et outils qualité (c_rob_1)|c_rob_1]].
 
== Pour aller plus loin ==
=== Aide sur les commandes et fonctions C ===
Vous pouvez obtenir de l'aide :
Ligne 229 :
* Pour les utilisateur UNIX, Linux et Mac à l'aide de la commande [[w:man (Unix)|man]]. Exemple : ''man -s3 printf''
 
=== Projets plus importants ===
Vous pouvez :
* Répartir vos fonctions dans plusieurs fichiers.
Ligne 235 :
* Utiliser un environnement de développement intégré ([[Langage C/Annexe/Utiliser un IDE|IDE]]).
 
=== Utilisation de bibliothèques ===
 
Une bibliothèque est un ensemble de fonctions définies par vous ou un autre programmeur, pour être appelées par votre programme. Cela permet la réutilisation ''briques logicielles'' qui allègeront vos programmes.
Ligne 241 :
Elles peuvent être fournies sous forme de code source ou de fichiers binaires à lier à vos programmes (exemple d'extension rencontrées : .a .so .dll). Des fichiers ".h" qui contiennent les prototypes et constantes liées aux fonctions de la bibliothèque et seront inclus dans vos fichiers sources.
 
==== Bibliothèques de base du langage C ====
Voir le [[Langage C/Fonctions de base|chapitre 10]] sur les fonctions de base<ref>[http://www.cplusplus.com/reference/clibrary cplusplus.com] Site anglais de référence sur les fonctions de base.</ref> :
* [[Langage C/Fonctions de base#stdio.h|stdio.h]]
Ligne 251 :
 
 
==== Bibliothèques Unix du langage C ====
 
* [[Langage C/Fonctions de base#unistd.h|unistd.h]]
 
==== Bibliothèques graphiques ====
* [http://www.gtk.org/ GTK] : Gimp ToolKit
* [http://www.trolltech.com/ QT], en C++
Ligne 261 :
* [http://www.libsdl.org/ SDL], Simple DirectMedia Layer
 
==== Bibliothèques 3d ====
 
* [http://msdn2.microsoft.com/en-us/xna/aa937781.aspx DirectX], pour la plateforme Windows de Microsoft
* [http://www.opengl.org/ OpenGL]
 
==== Framework ====
Certains programmes fournissent même leurs propres bibliothèques pour ajouter des modules et/ou des fonctionnalités à leurs logiciels.
On appelle cet ensemble de bibliothèques propres à un environnement de développement intégré (IDE) un Framework (plateforme de travail).
 
== TP ==
{{loupe|amorce=Faites les exercices du WikiLivre |b:Exercices en langage C/Notions de base{{!}}sur les notions de base}}
 
== Voir aussi ==
* Wikilivre [[b:Programmation C|Programmation C]], chapitre [[b:Programmation C/Bases du langage|Bases du langage]].