Rammentate che l'utilizzo di una macro è differente dall'utilizzo di una funzione:
| Previous slide | Next slide | Back to the index | View Graphic Version |
Se non uso prototipi non ho controllo sugli argomenti.
Si conforntino per esempio la macro:
#define MUL_BY_TWO(a) ((a)*(a))
e la funzione:
int mul_by_two(int a)
{
return(a*a);
}
Cosa succede se ad una delle due passo 2.5 ???
#define sqrt(a) (((a)<0)?sqrt(-(a)):sqrt(a))