PDA

Visualizza la versione completa : [C] chi mi spiega queste macro


Metallica
09-06-2004, 20:31
#define PUSH(l, r) {*stack++ = (l); *stack++ = (r);}

#define POP(l, r) {(r) = *--stack; (l) = *--stack;}

Cosa fanno queste due macro????

stack un'array allocato dinamicamente di dimensione n

infinitejustice
09-06-2004, 20:39
#define PUSH(l, r){*stack++ = (l); *stack++ = (r);}

questa avanza stack all'elemento successivo poi lo mette uguale ad l. poi lo fa puntare a quello dopo e lo pone uguale ad r.

#define POP(l, r) {(r) = *--stack; (l) = *--stack;}

questa fa tornare stack indietro di uno e poi indica che r uguale a quell'elemento (idem con l)

anx721
09-06-2004, 20:43
Tanto per chiarirti le idee, uno stack una struttura dati che si comporta come una pila: l'elemento puntato l'ultimo inserito, quello in cima alla pila, che il primo ad essere estratto con un 'operazione di pop, push invece l'operazione di inserimento.

:ciauz:

Metallica
09-06-2004, 20:51
ci sono delle operazioni native di C che si occupano di fare il pop e push?

anx721
09-06-2004, 20:57
no

Loading