La idea original era hacer define de las letras "fonéticas" a su equivalente normal y despues unirlas, todo con el preprocesador, pero parece que este funciona al reves, primero cambia las funciones y después lo demás, ademas no se puede usar la recursividad (que un archivo se incluya a si mismo), porque cada nivel vuelve a ver el archivo original. Así que habrá que conformarse con esto, que es bastante menos elegante, pero enfin...

include

/ Une los identificadores /

define _3(a,b,c) a ## b ## c

define _4(a,b,c,d) a ## b ## c ## d

define _6(a,b,c,d,e,f) a ## b ## c ## d ## e ## f

define indianovembertango int

define mikealphaindianovember main

define victoroscarindiadelta void

define paparomeoindianovembertangofoxtrot printf

_3(india, november, tango) _4(mike, alpha, india, november) ( _4(victor, oscar, india, delta ) ){

_6(papa, romeo, india, november, tango, foxtrot)("Hotel, wishkey!\n"); / / printf(...);

}

Hasta otra...