Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2000
    Messaggi
    1,175

    [C] chi mi spiega queste macro

    codice:
    #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

  2. #2
    Utente di HTML.it L'avatar di infinitejustice
    Registrato dal
    Nov 2001
    residenza
    Barcelona
    Messaggi
    772

    Re: [C] chi mi spiega queste macro

    #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)
    Live fast. Troll hard.
    Pythonist | Djangonaut | Puppeteer | DevOps | OpenStacker | Lost in malloc
    Team Lead @Gameloft Barcelona

  3. #3
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    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.


  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2000
    Messaggi
    1,175
    ci sono delle operazioni native di C che si occupano di fare il pop e push?

  5. #5
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    no

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.