Programmer en C
De Wiki de la communauté Mandriva.
Sommaire |
EDI
Les EDI (Environnement de Développement Intégré, en anglais IDE) peuvent vous assister et réaliser automatiquement pour vous un ensemble de tâches auxiliaires.
Vous pouvez utiliser un EDI comme CodeBlocks ou KDevelop. Les EDI ont l'avantage d'assister dans la programmation en rappelant des syntaxes, en vous aidant à organiser vos projets. Ces programmes regroupent à la fois l'éditeur de texte, le compilateur et le débogueur.
Les EDI les plus connus sont KDevelop (orienté KDE), Anjuta DevStudio (orienté GNOME), Code::Blocks
et Eclipse (orienté Java, mais qui permet de développer en C ou C++ en installant le paquetage eclipse-cdt).
L'inconvénient, c'est qu'ils sont parfois ardus pour un débutant. C'est pourquoi nous allons parler de la deuxième méthode qu'il est de toute façon nécessaire de bien comprendre, même si vous utilisez un EDI.
La méthode ancestrale
Voyons une autre méthode pour programmer. Celle-ci peut sembler dépasser, désuète, mais elle a le mérite de faire les choses simplement. Nous savons tous qu'il faut bien écrire le code quelque part. Nous allons donc utiliser un éditeur de texte.
L'éditeur de texte
Emacs est un éditeur très puissant, supportant de nombreux langage dont le C et le C++.
Citons encore Kate et Kwrite, pour KDE, ou Gedit, pour GNOME.
En nommant les fichiers avec une extension .c ou .cpp, selon que c'est du C ou du C++, les éditeurs s'adapteront pour colorer le texte, ce qui est bien plus confortable visuellement parlant.
Le compilateur
Une fois votre programme codé, vous devez le compiler, c'est-à-dire le transcrire du langage humain en langage machine. Pour cela, vous devrez utilisez gcc pour le C et g++ pour le C++. L'installation se fait très simplement avec
drakrpm.
Il arrive que l'on souhaite mélanger du C avec du C++, simplement parce que certaines choses en C++ sont plus faciles ou plus pratiques qu'en C. Comme le C++ englobe le C, vous pouvez utiliser votre compilateur C++.
Ouvrez donc une console et placez-vous dans le répertoire de votre projet.
Vous allez obtenir un fichier nommé a.out qui est l'exécutable. On le lance comme ceci :
Si vous voulez donner un nom à votre exécutable, ajouter l'option -o :
Pour tout bon projet qui se respecte, vous serez confronté un jour ou l'autre à la nécessité d'écrire votre programme dans plusieurs fichiers. Vous aurez toujours votre main.c mais aussi par exemple affichage.c, random.c... avec les fichiers d'en-tête (en anglais : headers) correspondant : affichage.h, random.h... qui contiennent les prototypes de vos fonctions. On compilera alors de la manière suivante :
L'ordre n'ayant aucune importance.
En C++, la syntaxe est totalement transparente :
d'innombrables options existent. Je vais en citer quelques-unes.
-W : le compilateur est plus exigeant sur les messages d'avertissements (warnings).
-Wall : le compilateur est extrêmement exigeant.
-lm : à utiliser lorsque vous avez des mathématiques dans votre programme.
Faut-il écrire à chaque fois cette ligne ? Non, fort heureusement, il y a des parades. Une première toute simple consiste à créer un fichier, que je nomme prog par exemple, avec les commandes à l'intérieur comme :
#! /bin/sh gcc main.c affichage.c random.c -o mon_programme ./mon_programme
Et en tapant :
ça compile et exécute.
On peut aller plus loin en créant un Makefile. Cf. les liens en bas de page.
Le débogueur
Le programme à déboguer est exécuté à travers le débogueur et s'exécute normalement. Le débogueur offre alors au programmeur la possibilité de contrôler l'exécution du programme, en lui permettant par divers moyens de stopper (mettre en pause l'exécution du programme) et d'observer par exemple le contenu des différentes variables en mémoire. L'état d'exécution peut alors être observé afin, par exemple, de déterminer la cause d'une défaillance.
Quand l'exécution d'un programme est stoppée, le débogueur affiche la position courante d'exécution dans le code source original si celui-ci est un source-level debugger ou symbolic debugger. Si c'est un low-level debugger ou un machine-language debugger, il montre la ligne désassemblée.
De nombreux debogueurs permettent, en plus de l'observation de l'état des registres processeurs et de la mémoire, de les modifier avant de rendre la main au programme débogué. Ils peuvent alors être utilisés pour localiser certaines protections logicielles et les désactiver, amenant à la conception d'un crack. Ainsi, certains logiciels, connaissant le fonctionnement des débogueurs et voulant empêcher de telles modifications, mettent en place des techniques antidébogage (anti debugging tricks).
Un debogueur connu et reconnu est gdb. Pour l'installer :
| Pour installer gdb, lancez Sélectionnez-le et cliquez sur Appliquer (Aide). Vous pouvez également l'installer en utilisant la console en tant qu'administrateur avec la commande suivante : urpmi gdb |
Voici un exemple d'utilisation de gdb et une page plus complète
Il existe de nombreux cours ou tutoriels sur la toile pour qu'il ne soit pas nécessaire de s'attarder sur son fonctionnement.


