7.2 Pseudo-fonctions

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

Exemple

 
#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));
}




Pr. Marc BUFFAT
buffat@ufrmeca.univ-lyon1.fr
2004-12-01