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

Domande da interrogazione

  1. Quali sono i vantaggi principali delle funzioni rispetto alle macro?
  2. Le funzioni offrono diversi vantaggi rispetto alle macro, tra cui la compilazione del corpo solo una volta, il controllo su tipo e numero di argomenti, una fase di debugging più semplice e l'evitamento di effetti indesiderati dovuti a multiple valutazioni di variabili.

  3. Quali sono gli svantaggi delle funzioni rispetto alle macro?
  4. Le funzioni sono generalmente più lente da utilizzare rispetto alle macro perché richiedono operazioni legate alla chiamata di funzione, e sono legate a un tipo specifico di argomento, mentre le macro possono essere utilizzate su più tipi di dati.

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community