Ils devront inclure le fichier contenant #define PI 3.14, sinon le préprocesseur ne lira pas la ligne #define, et par la suite la compilation échouera. En C++, un bon moyen de penser au processus de compilation est que chaque fichier C++ individuel est d'abord exécuté par un préprocesseur, qui prend toutes les instructions #define, #include et autres préprocesseurs et les remplace dans le code, puis compilé (à ce stade, le fichier C++ et tout ce qui est importé via #include sont traités presque comme s'il s'agissait d'un très gros fichier unique), après quoi un éditeur de liens prend la sortie finale du prétraitement/compilation pour tous les fichiers. Fichiers C++ et les assemble en un seul fichier de sortie final. Le préprocesseur (qui gère les définitions) fonctionne avant la phase de compilation, pas pendant le couplage.
Il est probablement plus clair de dire qu'il y a trois étapes: le prétraitement, la compilation et la liaison, et que '# define' et' # include' sont des directives de préprocesseur, donc elles ont lieu avant la compilation. – Cascabel
Jef: Fait, merci – Sukasa