Perché non viene usato C (quasi) puro al posto del preprocessore C?
Certo, capisco che sarebbe un po 'più prolisso. Ad esempio:
#define PI 3.14159
Se avessimo C regolare come linguaggio del preprocessore, quanto sopra potrebbe essere riscritto in qualcosa di simile:
#define PI {printf("3.14159");}
L'idea è di non sostituire {printf(...)}
per PI
ma di eseguire il codice dalla definizione macro e unire l'output di quel codice al posto di PI
.
Sì, è più prolisso, ma per cose più complesse penso che sarebbe di grande aiuto. Inoltre, seguendo questo progetto, i programmatori non dovrebbero imparare un'altra lingua (in particolare il preprocessore C) per scrivere macro.
Quindi, ci sono altri motivi tranne la verbosità che il preprocessore C non è solo puro C (con forse piccole modifiche, come l'aggiunta della parola chiave define
)?