P
pozz
Ciao a tutti,
in alcuni casi le funzioni in C sono così semplici che è meglio
definirle come delle macro. Per evitare che l'utilizzatore si
accorga di usare una macro o una funzione, avevo pensato di
scrivere la macro in questo modo:
#define mul(x,y) {x*y;}
In questo modo, chiunque utilizzi la mia macro potrà scrivere
semplicemente:
mul(x,y);
come se fosse una semplice funzione.
Però, se devo scrivere:
if( x>0 )
mul(x,y);
else
mul(-x,y);
....il compilatore mi dà giustamente errore. Il problema di sintassi
si risolve mettendo le parentesi graffe ai due rami dell'if, ma
normalmente queste non sono obbligatorie.
Esiste un modo più elegante per fare quello che voglio?
in alcuni casi le funzioni in C sono così semplici che è meglio
definirle come delle macro. Per evitare che l'utilizzatore si
accorga di usare una macro o una funzione, avevo pensato di
scrivere la macro in questo modo:
#define mul(x,y) {x*y;}
In questo modo, chiunque utilizzi la mia macro potrà scrivere
semplicemente:
mul(x,y);
come se fosse una semplice funzione.
Però, se devo scrivere:
if( x>0 )
mul(x,y);
else
mul(-x,y);
....il compilatore mi dà giustamente errore. Il problema di sintassi
si risolve mettendo le parentesi graffe ai due rami dell'if, ma
normalmente queste non sono obbligatorie.
Esiste un modo più elegante per fare quello che voglio?