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.
#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
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.
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;
}
Les directives de compilation sont aussi appelées ...
En compilation, qu'est-ce que le préprocesseur ?
Quelle est la syntaxe d'une directive de compilation ?
Quelle directive permet de créer une constante ?
Quelle syntaxe est correcte ?
Quelle directive permet d'utiliser une bibliothèque externe ?