Condividi tramite


Tipi di funzioni

Aggiornamento: novembre 2007

Esistono sostanzialmente due tipi di funzioni. Una funzione che richiede uno stack frame è denominata funzione frame. Una funzione che non richiede uno stack frame è denominata funzione foglia.

Una funzione frame può allocare spazio dello stack, chiamare altre funzioni, salvare il contenuto dei registri non volatili o utilizzare la gestione delle eccezioni. Richiede inoltre una voce nella tabella delle funzioni. Una funzione frame richiede un prologo e un epilogo, può allocare dinamicamente spazio dello stack nonché utilizzare un puntatore ai frame. Dispone inoltre di tutte le funzionalità del chiamante disponibili al momento della relativa eliminazione.

Se una funzione frame non chiama un'altra funzione, non è necessario che esegua l'allineamento dello stack (vedere la sezione Allocazione nello stack).

Una funzione foglia non richiede una voce nella tabella delle funzioni, non può chiamare altre funzioni, allocare spazio né salvare i registri non volatili. Inoltre, può lasciare lo stack non allineato durante l'esecuzione.

Vedere anche

Riferimenti

Utilizzo dello stack