Préprocesseur

https://en.wikipedia.org/wiki/C_preprocessor
https://gcc.gnu.org/onlinedocs/cpp/Preprocessor-Output.html
http://jhnet.co.uk/articles/cpp_magic

TBD détailler les include, comment on fait etc.

Premier programme

Fichier hello.c :

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

int main(void) { 

    printf("Hello World!");

    return EXIT_SUCCESS; 
}

Le but du préprocesseur est de préparer le code à être compilé. Le préprocesseur lit le fichier à préprocesser et cherche des :

Lorsque le préprocesseur
Attention, c'est juste du texte qui est remplacé. Il n'y a pas de logique interne.

clang -E hello.c -o hello.i

Directives

Les directives sont des commandes commençant pas un #. Elles sont de trois types :

Le fichier produit après préprocession est le fichier contenant les inclusions de fichiers et les macros et constantes remplacées.

Remplacement des macros et constantes

Les macros et constantes définies par les directives sont remplacées par leur code.

Il faut faire très attention aux effets de bords avec les macros.

TBD exemple

Bref, n'en faites pas vous même.