Ci sono problemi con la definizione di un "modulo" a sorgente singola in C usando la compilazione condizionale per separare l'"intestazione" da "sorgente"

3

Sto scrivendo un progetto che voglio mantenere small nel senso di essere molto densamente codificato e un singolo file sorgente.

Ma sta diventando abbastanza grande da rendere la navigazione del file stancante, quindi voglio suddividerla in più parti. Ma penso di poter mantenere il numero di file piccoli non avendo un file di intestazione separato, ma utilizzando invece le direttive del preprocessore per designare le sezioni:

#ifdef EXPORT
#define blah Blah Blah Blah
void prototype(void);
#else /* IMPLEMENTATION */

void prototype(void){
     //blah
}

#endif /* IMPLEMENTATION */

e per includere "header":

#define EXPORT
#include "module.c"
#undef EXPORT

Ci sono degli svantaggi a questo che non vedo? A parte il fatto che non ho mai sentito nessuno che lo faccia?

    
posta luser droog 16.06.2015 - 04:39
fonte

1 risposta

4

Le dipendenze di compilazione sono da file a file. Separando le dichiarazioni in un file di intestazione separato, sei libero di cambiare la fonte senza causare una ricompilazione di altro codice che dipende dall'intestazione.

    
risposta data 16.06.2015 - 06:09
fonte

Leggi altre domande sui tag