Ho dei dubbi su una differenza fra macro e funzioni: ovvero su come vengono chiamate...
data una macro a caso, ad esempio:

codice:
#define CUBO(x)  x*x*x
la chiamo passandogli un valore composto:

codice:
ris=CUBO(2+5)
è evidente che senza parentesi nell'espressione della macro, il risultato verrà storpiato. Mi spiego meglio. Invece di fare...

codice:
(2+5)*(2+5)*(2+5)
mi farà...
codice:
2+(5*2)+(5*2)+5

Quindi la macro per essere corretta andrebbe definita nel modo che segue:
codice:
#define CUBO(x)  (x)*(x)*(x)
Veniamo al mio problema: come vengono chiamate queste macro? Nello stesso modo di una funzione, ovvero il risultato della macro viene tornato alla chiamante dopo averlo calcolato in separata sede come avviene per le funzioni o no?

Il dubbio è subito spiegato... se devo eseguire questa espressione:
codice:
ris=100/CUBO(2+5)
l'espressione viene valutata così:
codice:
ris=100/(2+5)*(2+5)*(2+5)
oppure così:
codice:
ris=100/266
Perchè se è vero il primo caso allora la macro andrebbe definita con ulteriori parentesi esterne in questo modo:

codice:
#define CUBO(x) ((x)*(x)*(x))