Les pseudo-fonctions ou macros sont des substitutions paramétrables.
Exemple
#define ABS(x) x>0 ? x : -x
#define NB_ELEMENTS(t) sizeof t / sizeof t[0]
#include <stdio.h>
#include <math.h>
main()
{
int tab[][2] = { 1, 2, 3, 9,
10, 11, 13, 16};
double r = -acos(-1.);
int i, j;
for(i=0; i < NB_ELEMENTS(tab); i++)
for(j=0; j < 2; j++)
tab[i][j] = i + j;
printf("%f\n", ABS(r));
}
Remarques
#define CARRE(x) x*x
main()
{
float x = 1.12;
/*
Erreur : l'instruction suivante
calcule 2*x+1 et non pas
le carre de x+1.
*/
printf("%f\n", CARRE(x+1));
}