Ciao a tutti, ho una domanda sul comportamento di #define:
io sapevo che la direttiva al preprocessore
codice:
#define A B
cerca nel sorgente tutte le occorrenze di A e le sostituisce con B, e passa il nuovo file creato al compilatore che lo compila. Giusto no?

Ora, se per esempio volessi stampare 1.5, faccio:
codice:
#define A 3

...

printf("%lf", A. / 2);
perchè mi aspetto che il precompilatore generi un file fatto così:
codice:
...
printf("%lf", 3. / 2);
ma invece non capisco cosa genera, fatto sta che il compilatore da error che non capisce il punto.
Invece:
codice:
#define A 3.

...

printf("%lf", A / 3);
fa quello che deve fare. Ma non sono la stessa identica cosa agli occhi del compilatore?

Non è strano? Come si spiega??

Grazie