#include <nomfic> permet d'insérer à cet endroit un fichier, qui serra cherché dans le répertoire correspondant à la bibliothèque du C (sur PC dans \TC\INCLUDE)
#include "nomfic" permet d'insérer à cet endroit un fichier, comme s'il était écrit ici, en le cherchant dans le répertoire actuel (le votre)
#define nom valeur : remplace chaque occurrence du nom par la valeur. On ne peut prendre en compte qu'une ligne (le retour à la ligne terminant la définition). En C on a l'habitude de noter les constantes numériques en majuscules.
exemple :
#define PI 3.1415926 #define begin { #define end }#define macro(parametres) définition : permet la définition d'une macro, les paramètres seront substitués lors de la réécriture. Il ne faut pas de blanc entre le nom de la macro et la "(" pour différencier d'un define simple.
#define double(a) a*2
remplacera double (i+5) par i+5*2. Il faut donc utiliser des parenthèses,
même si elles semblent inutiles :
#define double(a) (a)*2
autre exemple:
#define max(x,y) x>y?x:y
replacera max(a,max(b,c)) par a>b>c?b:c?a:b>c?b:c
#define max(x,y) (((x)>(y)?(x):(y)
replacera max(a,max(b,c)) par (((a)>( (((b)>(c))?(b):(c)) )) ? (a)
: (((( b)>(c)) ? (b) : (c))) ce qui donne des parenthèses superflues
mais le résultat escompté.
Une macro ressemble à une fonction, mais sera d'exécution plus rapide : le texte est directement inséré à l'endroit voulu, mais pas de gestion de pile.
#undef nom : annule le précédent #define nom ...
#if (expression) : les lignes qui suivent ne seront lues (et compilées que si l'expression est vraie
#endif : fin de portée du #if précédent
#else : possible mais optionnel, faire attention en cas de #if imbriqués
#ifdef nom : comme #if mais vrai s'il y a eu auparavant un #define nom
#ifndef nom : vrai si variable non définie
exemples:
#ifndef entier #define entier int /* si une autre bibliothèque incluse plus haut l'a déjà défini, on ne le redéfinit plus */ #endif #ifdef biblio_graphique initialise_ecran(); efface_ecran(); trace(dessin); #else puts("si on avait eu un écran graphique j'aurai fait un dessin"); #endif /* biblio_graphique peut être défini dans un "header" (fichier.h) inclus ou non plus haut */