Cours 1.4. Les directives de compilation

Introduction

Les directives de compilation sont aussi appelées directives au préprocesseur. Il s'agit d'une phase préliminaire à la compilation. Le compilateur va effectuer un certain nombre d'opérations sur le code avant de le transformer en langage machine.

Parmi ces opérations préliminaires, certaines sont ordonnées par le développeur en les précisant dans le code source. Ces directives de compilation commencent toujours par le caractère # et se termine par un saut de ligne.

Il ne faut pas mettre de point-virgule à la fin des directives de compilation. Ce ne sont pas des instructions.

#include

#include permet d'insérer un autre fichier dans le code. Quand vous utilisez la directive #include, c'est comme si vous faisiez un copier-coller du fichier dans le code source.

Dans 99% des cas, #include sert à stipuler que le code utilise une bibliothèque :

#include <stdio.h>

#define et #undef

#define permet de déclarer une constante ou un identificateur. Cette dernière peut être supprimée avec #undef. Généralement, cette directive est utilisée pour déclarer des constantes :

#define PI 3.14159265359

Notez l'absence de point-virgule à la fin de la ligne.

Par convention, le nom des constantes est mis en majuscule.

#ifdef, #else et #endif

Il est possible de préciser au préprocesseur qu'une partie du code ne sera pas compilée sous certaines conditions. On rencontre généralement ce type de syntaxe dans des programmes destinés à plusieurs cibles (Windows, Linux). L'exemple suivant en montre une illustration. La syntaxe || représente un ou. Si _WIN32 est défini ou _WIN64 est défini.

// On utilise la bibliothèque stdio.h
#include <stdio.h>

int main(void) {

/* On utilise des directives pour compiler 
différemment des codes sous Windows et sous Linux */
#if defined (_WIN32) || defined( _WIN64)
  printf ("Code pour Windows\n");
#else
  printf ("Code pour Linux\n");
#endif

  return 0;
}

Quiz

Les directives de compilation sont aussi appelées ...

Vérifier Bravo ! Il est d'ailleurs plus juste de parler de directives au préprocesseur que de directive de compilation. Essaie encore ...

En compilation, qu'est-ce que le préprocesseur ?

Vérifier Bravo ! Le préprocesseur prépare le code avant sa compilation. Essaie encore ...

Quelle est la syntaxe d'une directive de compilation ?

Vérifier Bravo ! Les directives de compilation commencent par # et se termine par un saut de ligne. Essaie encore ...

Quelle directive permet de créer une constante ?

Vérifier Bravo ! #define sert à définir des constantes ou des identificateurs. Essaie encore ...

Quelle syntaxe est correcte ?

Vérifier Bravo ! Il ne faut pas mettre de signe égal, ni de point-virgule à la fin des directives de compilation. Essaie encore ...

Quelle directive permet d'utiliser une bibliothèque externe ?

Vérifier Bravo ! #include permet d'insérer un fichier externe, généralement une bibliothèque. Essaie encore ...

Voir aussi


Dernière mise à jour : 15/09/2023