Estoy intentando trasladar un código C relativamente moderno a un compilador anterior.El compilador de Old C se atora en #ifndef #define
Este compilador (DICE), al parecer, se ahoga con el primer archivo de cabecera y la primera aparición de este lenguaje:
#ifndef SOMETHING
#define SOMETHING
...
#endif /* SOMETHING */
muere en la segunda línea de la cabecera con: DCPP: "../../code/someheader.h" L:2 C:0 Error:39 Syntax Error
Cambiar a #define SOMETHING 1
no hizo diferencia.
Tengo realmente dos preguntas, ¿estoy usando DICE con la opción incorrecta o algo así, o ¿Los programadores C usaron algún otro modismo igual a ifndef-define en los viejos tiempos?
Referencias:
- DICE Wikipedia Entry
- Original source code, se ejecuta en Unix
- ligeramente actualizado Amiga version
- El autor de dados, Matt Dillon, pasó a producir DragonFlyBSD
Si se trata de [este compilador de DICE] (http://www.obviously.com/amiga/), entonces eso ciertamente solía funcionar con protectores de inclusión típicos. – tinman
Mi primera edición (21ª impresión) K & R describe #ifndef en la página 208, por lo que ha estado disponible por un tiempo. –
Ooh, esa pregunta trae recuerdos! Incluso pagué por la versión de shareware. :) Además de eso, debería funcionar, de lo contrario, todos los encabezados del sistema fallarían también. –