Sto provando a portare un codice C relativamente moderno in un compilatore più vecchio.Il vecchio compilatore C si strozza su #ifndef #define
Questo compilatore (DICE), sembra, bobine sul primo file di intestazione e la prima occorrenza di questo linguaggio:
#ifndef SOMETHING
#define SOMETHING
...
#endif /* SOMETHING */
muore sulla seconda riga nell'intestazione con: DCPP: "../../code/someheader.h" L:2 C:0 Error:39 Syntax Error
La modifica a #define SOMETHING 1
non ha fatto alcuna differenza.
Quindi ho davvero due domande, sto usando DICE con l'opzione sbagliata o qualcosa del genere, o i programmatori C hanno usato un altro idioma uguale a ifndef-define ai vecchi tempi?
Riferimenti:
- DICE Wikipedia Entry
- Original source code, gira su Unix
- leggermente aggiornata Amiga version
- L'autore di DICE, Matt Dillon, ha continuato a produrre DragonFlyBSD
Se è [questo compilatore DICE] (http://www.obviously.com/amiga/), allora sicuramente usato per funzionare con le tipiche protezioni di inclusione. – tinman
La mia prima edizione (21 ° stampa) K & R descrive #ifndef a pagina 208, quindi è in circolazione da un po 'di tempo. –
Ooh, quella domanda riporta indietro i ricordi! Ho persino pagato la versione shareware. :) Oltre a ciò, dovrebbe funzionare, altrimenti tutte le intestazioni di sistema fallirebbero pure. –