C 7 Préprocesseur modifieurs et fonctions avancées

Extrait du cours C 7 Préprocesseur modifieurs et fonctions avancées

Le préprocesseur
●processus avant la compilation
●opérations brutes sur les fichiers
●on peut voir ce que fait le préprocesseur avec: gcc -E -P fichier.c

Inclusion de fichiers
●#include foo : inclusion du fichier désigné par foo dans le fichier courant
●foo peut être de la forme:
– « … » : recherche dans le répertoire courant
– <…> : recherche dans les répertoires
d’inclusion(ceux par défaut et ceux définis
par l’utilisateur)
– possibilité de sous-répertoires:
<sys/types.h>

Définition de macros

●#define NOM texte (préférer les noms en majuscules)
●remplace NOM par texte, sauf dans les chaînes et les identificateurs qui contiennent NOM, et seulement après le #define
●utiliser des \ si texte sur plusieurs lignes:
#define NOM debut\
fin
●utile pour définir des constantes

Définition de macros
●on peut définir autre chose que des
constantes:
#define SI if
#define SINON else
#define FOREVER for(;;)
●on peut même ne rien mettre:
#define const_H
#define USE_REGEXP

undef
● #undef nom
●permet d’annuler la définition de nom, si elle existe
●pratique pour être sûr qu’on appelle une
fonction et pas une macro
#undef MAX
int MAX(int a,int b) {
return (a>b)?a:b;
}

#expr
●avec un # devant un paramètre, on peut obtenir une chaîne
#define EVAL(e) printf(« %s=%d\n »,#e,e)
int main(int argc,char* argv[]) {
int i=4;
EVAL(2*i+7);
return 0;
}
$>gcc eval.c -P -E
int main(int argc,char* argv[]) {
int i=4;
printf(« %s=%d\n », »2*i+7″,2*i+7);
return 0;
}

……….

Si le lien ne fonctionne pas correctement, veuillez nous contacter (mentionner le lien dans votre message)
C 7 Préprocesseur modifieurs et fonctions avancées (299.87 KO) (Cours PDF)
Préprocesseur modifieurs

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *