vorrei farvi notare...

le direttive non hanno bisogno di punto e virgola gicche non sono istruzzioni da compilare , bensi è un commando al precompilatore.
il precompilatore esegue questi, che devono essere scritti su una riga
infatti se scrivete
#define x
y
quell y è fuori posto vi chiede dunque ; o altro.
il '\'posto prima di '\n'(nuova_linea) fa "skippare" nella traduzione del precompilatore l'effetto di '\n'.
provate dunque scrivere '\'' '(spazio)e poi '\n': il raggiro non funzia.
mi chiedevo '\''\n' == commento di n???
su C non esiste la scrittura \\ come commento ma le direttive funzionano separate da '\''\n'?

Cmq una piccolezza: ciascuno usa la sua tecnica,
io ho deciso e sprono chiunque a seguire il mio esempio a scrivere per esempio tutte le definizioni,costanti e macro in maiuscolo
quelle globali con la prima lettera in maiuscolo
le locali in minuscolo...
UTILITà?

le inline sono funzioni espanse esattamente come le macro
ma spesso nel lavoro di espansione di una macro può causare errori di compilazione o peggio errori di Run-time difficili da trovare

si usa quindi spesso su c++ il tipo inline con la bellezza di eliminare la chiamata a funzione ma la funzione c'è!
la macro viene completamente sostituita come testo!

la risoluzione di una inline avvolte è complessa (esempio un ciclo)...

MACRO vs INLINE:

#define QUADRATO(x) (x*x)//mettete al posto della x la variabile da elevare al quadrato

inline float Quadrato(float x){return (x*x);} //notare il return di funzione e ';'

{
float a,b;
int c,d;
/*...*/
b= QUADRATO(a); //compilato: b = (a * a) !!! sostituzione per testo
c= QUADRATO(d); //compilato: b = (a * a) !!! sostituzione per testo
}
l'inline ha un funzionamento simile a:
b = Quadrato(a); //b = { a * a }// in più a se definito intero il compilatore aggiunge un recast o vi fa notare

differenza : le macro sarebbero inaffidabili ofrono completa ottimizzazione,
le inline sono complesse da espandere e le ottimizzazioni che offrono variano da compilatore a compilatore...
forse questo per molti è già chiaro cmq rimane la mia domanda un po stolta visto che '\n' è un solo carattere...
curioso però...

#define INVERSO(x) (1/x) //questo è un altro esempio
//con queste due macro non ho mai avuto problema nemmeno con classi, basti che siano definiti le operazioni (/ e *)...

aspetto risposte... ciao