Concetti Chiave
- Le funzioni sono compilate una sola volta, mentre le macro sono ricompilate ogni volta che vengono utilizzate.
- Le funzioni offrono un controllo sui tipi e sul numero di argomenti, cosa che le macro non fanno.
- Il debugging è più semplice con le funzioni rispetto alle macro.
- Le macro possono causare effetti indesiderati a causa della valutazione multipla degli argomenti nel loro corpo.
- Le macro sono più veloci da eseguire rispetto alle funzioni e possono essere usate su più tipi di dati.
Vantaggi e svantaggi di funzioni e di macro
Le funzioni e le macro hanno lo stesso compito: quello di rappresentare con un singolo nome un insieme di operazioni, in modo da poter sintetizzare il codice e renderlo meglio comprensibile dal lettore.
Le funzioni sono parte di codice racchiuso dentro parentesi graffe precedute dal nome di funzione, per esempio:
function{
// serie di operazioni
}
Mentre le macro sono insieme di operazioni precedute dalla direttiva #define, per esempio:
#define numbero_successivo (a) a=a+1;
Funzioni e macro hanno la stessa funzione ma comunque per come sono fatte hanno diverse differenze, compresi alcuni vantaggi e svantaggi. Infatti le funzioni rispetto alle macro hanno:
Vantaggi:
- il corpo delle funzioni viene compilato solo una volta e non come nelle macro che l’insieme delle operazioni è compilato più volte
- le funzioni hanno il controllo su tipo e numero di argomenti, invece le macro non hanno alcun tipo di controllo sulle variabili utilizzate
- la fase di debugging nelle funzioni è più semplice
- gli argomenti delle macro vengono valutati ogni volta che compaiono all’interno del corpo, e possono quindi produrre effetti indesiderati a causa delle multiple valutazioni di una stessa variabile
Svantaggi:
- la macro sono più veloci da utilizzare rispetto le funzioni perché non è necessario eseguire operazioni legate alla chiamata di funzione
- la stessa macro può essere utilizzata su più tipi di dati e non come nelle funzioni che un argomento è legata al suo tipo