« Langage C/Rencontre avec le C » : différence entre les versions
Contenu supprimé Contenu ajouté
m Révocation des modifications de 5.48.68.197 (discussion) vers la dernière version de 196.75.151.186 Balise : Révocation |
Dépeuplement de Catégorie:Pages utilisant des balises source obsolètes |
||
Ligne 11 :
== Ce que l’on va réaliser ==
Avant d'écrire un programme, il faut être au courant de ce que l’on veux et peux faire. Or, pour l'instant nos connaissances en programmation sont plus que limitées, et il est vain de croire que vous allez pouvoir créer le dernier jeu vidéo à la mode, ou un logiciel révolutionnaire en quelques jours de pratique. En effet, l'apprentissage du C est long, et il vous faudra entre quelques semaine et quelques mois selon votre assiduité et votre sérieux pour réaliser des programmes dit «
=== Les programmes graphiques ===
Ligne 25 :
Voici un exemple de programme en console :
<
12 - 7 = 5
Right!
Ligne 52 :
Press RETURN to continue...
</syntaxhighlight>
Dans un premier temps, ce sera le seul type de programme que nous allons créer. Rassurez-vous, vous pourrez bien entendu créer des programmes dotés d'une interface graphique en suivant ce cours car vous saurez utiliser d’autres bibliothèques, et pourrez ainsi créer tout ce qui vous passe par la tête.
Ligne 62 :
Je remets ce code ici pour que tout le monde aie le même :
<
#include <stdio.h>
Ligne 71 :
return 0;
}
</syntaxhighlight>
Si le code présent dans votre éditeur est différent de celui-ci, remplacer le, il est important que nous ayons le même. N'oubliez pas de sauvegardez même si le projet ne contient pas grand chose, c’est une bonne habitude à prendre et ça vous éviteras un bon nombre de mésaventures.
Ligne 79 :
On retrouve la ligne suivante tout en haut du programme :
<
#include <stdio.h>
</syntaxhighlight>
C'est une '''directive de préprocesseur''', facilement reconnaissable car elles commencent toutes par un '''#'''. Dans le cas présent, elle permet de charger des fichiers contenant des «
L’ensemble de ces fichiers d'en-tête est appelé '''bibliothèque''' de l'anglais « ''library'' » (Le mot «
Dans notre cas, nous ne chargeons qu'un seul fichier d'en-tête : '''stdio.h''', qui signifie « '''St'''andar'''d i'''nput '''o'''utput », soit « Entrée-sortie standard ». Ce fichier d'en-tête va nous permettre de communiquer avec l'utilisateur en affichant des messages à l'écran et en récupérant les informations que celui-ci pourrait entrer.
Ligne 93 :
La partie suivante constitue le cœur du programme :
<
int main(void)
{
}
</syntaxhighlight>
Ce bout de code constitue une '''fonction''', dans le cas présent, c’est la fonction '''main''' (prononcez «
Une fonction est délimitée par des accolades ('''{''' et '''}'''), et toutes les instructions d'un programme en C se trouvent à l’intérieur d'une fonction. Dans un premier temps, nos programmes seront uniquement constitués de cette seule fonction, il est donc très important de ne rien écrire en dehors des accolades. De plus, un programme en C doit toujours se terminer par une ligne vide, faites donc toujours l'effort d’en ajouter une après l'accolade fermante.
Notre fonction main contient le mot «
=== Les instructions ===
Ligne 110 :
À l’intérieur de notre fonction main, on retrouve deux '''instructions''', ce sont des ordres donnés à l’ordinateur pour exécuter une tâche précise. Dans le cas présent, ces instructions sont les suivantes :
<
printf("Hello world!\n");
return 0;
</syntaxhighlight>
La première de nos deux instructions est celle-ci :
<
printf("Hello world!\n");
</syntaxhighlight>
Cette instruction appelle une fonction qui permet d'afficher le message entre guillemets à l'écran, dans notre cas, elle affiche donc le message «
Revenons un instant sur ce qui a été dit plus haut : « cette instruction appelle une fonction », pourtant, il avait été stipulé précédemment que le programme était uniquement constitué de la fonction '''main'''. En fait, '''printf''' est une fonction toute prête, inclue et utilisable grâce aux directives de préprocesseur dont je vous ai parlé. La fonction principale '''main''' fait donc appel à la fonction '''printf''' afin d'afficher un message à l'écran. C’est comme ça que chaque programme C est conçu : '''main''' appelle des fonctions qui à leur tour vont appeler d’autres fonctions, et ainsi de suite.
Ligne 127 :
La deuxième instruction est la suivante :
<
return 0;
</syntaxhighlight>
Cette instruction permet, comme son nom l'indique, de '''retourner une valeur'''. C'est cette même instruction qui clôt une grande majorité de fonctions en C. Dans notre cas elle retourne 0, donc si la valeur 0 est renvoyée à la fin de l'exécution du programme, cela signifie que celui-ci a fonctionné. Par convention, les programmeurs utilisent la valeur 0 pour signifier que tout a fonctionné, et une autre valeur pour indiquer une erreur.
Ligne 141 :
Les '''mots-clés''' sont des mots spéciaux, réservés par le compilateur, que l’on ne peut pas utiliser à notre guise. Ils permettent entre autres la déclaration de fonctions, le renvois de valeurs, etc. 32 mots-clés sont réservés par le langage C, ceux-ci sont répertoriés dans la liste suivante (voir la norme C89 - A.1.1.2 Keywords) :
<
auto double int struct
break else long switch
Ligne 150 :
default goto sizeof volatile
do if static while
</syntaxhighlight>
Nous aurons l’occasion d'étudier leur utilité en temps voulu tout au long de ce cours. Vous remarquerez que ces mots-clés sont automatiquement colorés par votre IDE ou votre traitement de texte si celui-ci gère la coloration syntaxique.
Ligne 160 :
Les opérateurs en C sont répertoriés dans la liste suivante (voir la norme C89 — A.1.1.6 Operators) :
<
[ ] ( ) . ->
++ -- & * + - ~ ! sizeof
Ligne 167 :
= *= /= %= += -= <<= >>= &= ^= |=
, # ##
</syntaxhighlight>
''Vous noterez que '''sizeof''' est à la fois un mot-clé et un opérateur.''
En C, les opérateurs peuvent être classés parmi sept catégories
# les opérateurs arithmétiques
Ligne 191 :
! Instruction en C !! ''Traduction'' en français
|-
| <
printf("Hello world!");
</
|-
| <
return 2 + 5;
</
|}
Comme dis plus haut dans le chapitre, les instructions doivent toujours se terminer par un point-virgule, à quelques exceptions près sur lesquelles nous reviendrons plus tard dans le cours.
Ligne 209 :
! Expression en C !! Place de l’expression dans une ''phrase''
|-
|<
"Hello world!"
</
|-
|<
2 + 5
</
|}
Ligne 223 :
La différence entre les deux notions d'instruction et d'expression est un peu subtile et conduit parfois à des confusions, afin d’être sûr que vous les avez bien assimilés, voici un dernier exemple reprenant les deux notions :
<
x = 2 + 3;
</syntaxhighlight>
Il s'agit bien d'une instruction puisqu'on donne un ordre à l’ordinateur (« Affecte la valeur 2 + 3 à x »), mais on y retrouve aussi une expression qui produit la valeur 5 comme résultat. Vous verrez qu’en C, la majorité des lignes de code sont des instructions contenant des expressions. C’est ce qui s’appelle la '''programmation impérative'''. C’est le choix des concepteurs du langage, mais ce n’est pas le seul «
=== Les blocs d’instructions ===
Ligne 241 :
Lorsque l’on écrit un texte en français, on laisse de l'espace entre deux paragraphes afin de faciliter la lecture, il en va de même pour la programmation. On insère donc des retours à la ligne dans un code source pour le rendre plus clair et plus lisible. Par exemple, les deux codes ci-dessous sont identiques pour le compilateur, mais le second est plus lisible pour le programmeur que le premier.
<
#include <stdio.h>
int main(void)
Ligne 247 :
printf("How are you?\n");
return 7-(3+4);}
</syntaxhighlight>
<
#include <stdio.h>
Ligne 258 :
return 7-(3+4);
}
</syntaxhighlight>
Si l'ajout d'espace permet de gagner en lisibilité, cela est rarement suffisant, et il est important d'indenter son code. L’'''indentation''' permet de faire ressortir des blocs de code par l’ajout de tabulations ou d’espaces dans un code source. Un code bien indenté est un code clair et agréable à lire. Il existe de [[w:Style d'indentation|nombreux styles d’indentation]] différents. C'est à vous de choisir celui que vous préférez, et de vous y tenir. Ce cours utilisera quant à lui le style Allman (ou style ANSI).
Ligne 264 :
Pour bien illustrer cela, voici le code précédent, puis ce même code espacé et indenté :
<
#include <stdio.h>
int main(void)
Ligne 270 :
printf("How are you?\n");
return 7-(3+4);}
</syntaxhighlight>
<
#include <stdio.h>
Ligne 281 :
return 7 - (3 + 4);
}
</syntaxhighlight>
Il faut aussi que vous sachiez qu’il existe une ''règle'' qui limite le nombre de caractères par ligne à 80. C'est néanmoins un principe très ancien et vous n’êtes pas du tout obligé de l'adopter, ce ne seras d'ailleurs pas le cas dans ce cours. Mais sachez que certains l’utilisent encore, et ne soyez pas surpris si certains codes suivent cette règle.
Ligne 291 :
Un commentaire en C est écrit entre les signes ''/*'' et ''*/'' :
<
/* Ceci est un commentaire */
</syntaxhighlight>
Un commentaire peut très bien s'étendre sur plusieurs lignes :
<
/* Ceci est un commentaire qui
prend plusieurs lignes. */
</syntaxhighlight>
Si les commentaires sont important, en mettre trop risque de rendre le code encore plus compliqué à comprendre. Il faut donc trouver un juste milieu, c'est-à-dire commenter les points importants du programme sans pour autant commenter chaque ligne. De nombreuses instructions sont évidentes, et les commenter serais superflu. Par ailleurs, il est conseiller d'expliquer l'utilité d'une suite d'instruction de manière générale plutôt que de commenter chaque ligne une à une.
Ligne 308 :
Voilà à quoi ressemblerait notre code minimaliste (excessivement) commenté :
<
/* Directive de préprocesseur qui permet de charger des fonctions utiles */
#include <stdio.h>
Ligne 323 :
/* Fin du code, le programme s’achève ici, après une ligne vide */
</syntaxhighlight>
{{Bas de page
|