Learning GNU C: il preprocessore | OTHER chapters | |||
Le macro sono pezzi di codice che vengono processati, dal preprocessore C, prima della compilazione. Le istruzioni quali:
sono macro. Vediamo questo pezzo di codice:
L'output di questo codice sarà:
Il preprocessore C, semplicemente, rimpiazzerà la macro SIZE_OF_SQUARE con il valore "4". Questo meccanismo è molto utile per due ragioni:
Alcune funzioni presenti nella libreria Le macro possono anche essere male utilizzate e trovare l'errore può diventare arduo, visto che una macro smette di esistere prima che il codice venga inviato al compilatore. L'errore più diffuso è metter un argomento che produca effetti collaterali. Vediamo questo piccolo esempio:
Compilate ed eseguite questo codice ed avrete:
Sembra tutto ok. Provate, ora, questo altro esempio:
Avete visto cosa accade?
Quando interviene la sostituzione del testo abbiamo due istanze di Le macro sono davvero necessarie? Il preprocessore, normalmente, veniva usato per compensare alcune piccole mancanze del linguaggio. Tuttavia, mano a mano che il linguaggio si è evoluto, queste mancanze sono state tutte eliminate. E' ancora una buona cosa sapere come usare e comprendere le macro per il preprocessore, anche perchè le macro sono molto comuni. Le macro sono state parte integrante del linguaggio per molto più tempo di quanto lo siano state le procedure che le hanno sostituite: la gente, quindi, si è abituata ad esse. Se state pensando che una variabile globale dei tipo:
possa sostituire un semplice:
avete proprio ragione. Le variabili
Le macro complesse, le funzioni, cioè, implementate come macro, possono essere sostituite dalle funzioni inline. Liste di argomenti a lunghezza variabile Le liste di argomenti a lunghezza variabile sono un qualcosa che avete già incontrato: basti pensare alla funzione
|
||||
Learning GNU C: il preprocessore | Disclaimer: this link points to content provided by other sites. |