Logo creanet 2.0
Retour sur le préprocessing

Bienvenue dans un nouveau chapitre qui sera une nouvelle fois assez simple Smiley souris

Nous allons tout d'abord commencer par une notion très importante: qu'est-ce que le préprocessing?

Le préprocessing est l'étape où le compilateur remplace les directives de processeurs (d'où son nom).


Vous avez depuis le début croisé des directives de processeur (les includes) et bien en réalité, il y en a d'autres! Nous allons toutes les voir dans ce chapitre (rassurez-vous, il n'y en a qu'à peine 3 Smiley souris).
Le préprocessing intervient donc au début de la compilation. Par exemple, les includes sont remplacés par les fichiers indiqués et le tout rassemblé dans un seul et même fichier. Smiley souris

Avant de commencer, rappelez-vous d'une chose:

 
N'importe quelle directive de processeur commence obligatoirement par un #!

Voyons maintenant les différentes sortes de directives de processeur.Smiley souris


Include

Les includes permettent d'inclure (nan sans blaguesSmiley rigole) des fichiers en plus de celui de base. On s'en sert pour inclure des bibliothèques contenant des fonctions déjà codées (comme math.h, stdlib.h, etc..) ou pour inclure ses propres fichiers grâce à la programmation modulaire, notion expliquée dans le chapitre suivantSmiley souris

Pour rappel, les includes s'utilisent de cette façon:

#include <LeNomDuFichier>

 
!Attention!
Lorsque le fichier à inclure est situé dans le dossier de votre IDE (c'est-à-dire installé, comme les bibliothèques de base (stdlib, stdio, math, windows, etc..)) il faut encadrer le nom du fichier à inclure de chevrons <> comme vous avez eu l'habitude de le faire depuis le débutSmiley souris

Cependant, lorsqu'il s'agit d'un fichier se trouvant dans le dossier de votre projet, il ne se met plus entre chevrons mais entre guillemets "" comme ceci:

#include "LeNomDuFichier"
Attention doncSmiley souris

Je pense qu'il n'est pas trop nécessaire de s'éterniser sur les includes étant donné que vous savez déjà vous en servir  ;)
Voyons donc dès à présent une nouvelle directive de processeur, j'ai nommé ... define!Smiley rigole

Define

Define est extrêmement pratique en programmation! Il permet de remplacer par un mot, une instruction, un nombre, un mot, bref ce que vous voulez!

Prenons un exemple:

#include <stdlib.h>
#include <stdio.h>


#define Dit_Bonjour printf("Hello world!");

int main()
{
       Dit_Bonjour
       return 0;
}


Le nom du define doit respecter les mêmes règles que pour les variables et les fonctions!

Remarquez qu'il n'y a pas de point virgule à la fin de Dit_Bonjour car ce n'est pas une instruction mais juste une indication à l'IDE au moment de la compilationSmiley souris
 
Ce qu'il faut bien comprendre c'est que le Dit_Bonjour est remplacé par print("Hello world!");

Vous avez compris cela, vous avez tout comprisSmiley souris


Vous pouvez aussi mettre plusieurs lignes de code dans les defines en procédent comme ceci:

exemple macro tuto C
Il suffit  de mettre un antislash à la fin de chaque ligne sauf à la dernièreSmiley souris

Exemple:
exemple macro tuto C 2
 
Ce qui, au final, donne bien:
 
exemple define tuto C


Pensez aussi qu'une define peut très bien être aussi une valeur comme:

#define ValeurPI 3.14159265

Voilà, vous maîtrisez les defines!Smiley souris Il ne nous reste plus qu'une sorte de directive de processeur à voir, les conditions.
 
Les conditions existent aussi dans le monde des directives de processeur


Sauf qu'ici elles sont encore plus simples que simplesSmiley rigole Elles permettent d'effectuer ou non certaines actions au moment de la compilation du programme. Par exemple (c'est ce que nous allons voir ici) en fonction du système d'exploitation.


Une condition en "langage" préprocesseur se fait comme ceci:

#if condition
    //Code à compiler si la condition est vraie.

#elif conditionB
    //Sinon si cette condition est vrai, compiler ce code.

#endif //Fin de la condition


Avouez que c'est quand même assez simpleSmiley souris La condition peut-être n'importe quoi, mais c'est souvent la même chose, à savoir: faire une compilation en fonction du système d'exploitation.

Par exemple, si vous souhaitez mettre dans votre code une instruction spécialement pour les ordinateurs Apple, il vous faut écrire cela:


#if __APPLE_
     //Instructions, inclusions, bref ce que vous voulez.
#endif


Voilà, j'espère une nouvelle fois avoir été clairSmiley souris N'hésitez pas à poser une question si vous n'avez pas compris qu'elque choseSmiley souris


Si toutefois vous avez compris, vous m'en voyez ravi et je vous invite à continuer votre apprentissage vers un nouveau chapitre de ce gros tutoriel pour découvrir comment "partitionner" vos fichiers sources, chose bien pratique pour organiser
un projetSmiley souris

                                                                                                     
  L'apparition des fonctions                                                   La programmation modulaire

























 
 
 



Créer un site
Créer un site