Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Il preprocessore
La sostituzione di macro
Le compilazioni condizionali
L’inclusione di file
C
L an
gu
ag
e
Argomento di
define Nome di macro ( macro
) Corpo di macro
Sintassi di una macro di tipo funzione
Esempio:
Esempio
define MULT_BY_TWO(a) ((a) (a))
Fondamenti di Informatica I a.a. 2008-09 6
La sostituzione di macro 3
j MULT_BY_TWO(5); j 10;
Esempio:
Esempio Trasformazione da maiuscole a minuscole, nel caso di
codifica ASCII
define TO_LOWER(c) ((c) (‘a’ ‘A’))
x size; x 10;;
produrrebbe…
j NEG_A_PLUS_F(x); j (x) f;
Esempio:
Esempio
define sqrt(x) ((x<0) ? sqrt(x) : sqrt(x))
Nota:
Nota l’uso di un nome di macro, all’interno della propria
definizione, ha senso solo se esiste una funzione con lo stesso
nome
Vantaggi
Le macro sono più veloci, perché non richiedono le operazioni
connesse con le chiamate di funzione (salvataggio del contesto)
Il numero degli argomenti delle macro è sempre soggetto a
controllo da parte del compilatore
Non è imposto alcun vincolo sul tipo degli argomenti (la stessa
macro può essere utilizzata su più tipi di dati)