¡NÓTESE BIEN! Esto no es un preprocesador y cpp -E
no crea un buen resultado.
Buscando una pequeña utilidad de línea de comando, que elimine partes compiladas condicionalmente de los archivos de encabezado, en función de los parámetros (se prefieren los parámetros CLI o las variables de entorno, pero una configuración también funcionaría).
Ejemplo de entrada:
#ifdef A
#define B 1
#else
#define B 2
#endif
Salida de ejemplo:
#define B 2
Lo encontré una vez (algo así como undef
o undefine
), pero no puedo recordarlo... Gracias.
Creo que te acuerdas de unifdef . Entiende las definiciones pasadas en la línea de comandos, incluida la aritmética. No analiza definiciones de macro dentro del archivo, solo condicionales. Puede analizar algunas expresiones de preprocesador de C.
$ cat foo
#ifdef A
#define B 1
#else
#define B 2
#endif
#if A == 0x01
aye
#endif
#if B == 1
bee
#endif
$ unifdef -DA=0 foo
#define B 1
#if B == 1
bee
#endif
Roman Saveljev