Preprocessore metaprogrammazione. Cioè, usando il file incluso come una sorta di funzione in fase di compilazione che esegue alcune attività. Gli argomenti della funzione sono macro. Ad esempio, il file si è collegato ha una sezione simile alla seguente:
// define INCLUDE_STACK to include "ofstack.h"
#ifdef INCLUDE_STACK
#include "dcmtk/ofstd/ofstack.h"
#endif
Quindi, se ho voluto includere "ofstack.h"
, lo farei in questo modo:
#define INCLUDE_STACK
#include "ofstdinc.h"
#undef INCLUDE_STACK
Ora, immagino che in seguito lungo la linea, qualcuno vuole usare questa particolare sezione della testata:
// define INCLUDE_STRING to include "ofstring.h"
#ifdef INCLUDE_STRING
#include "dcmtk/ofstd/ofstring.h"
#endif
in modo da fare il seguente:
#define INCLUDE_STRING
#include "ofstdinc.h"
#undef INCLUDE_STRING
Se "ofstdinc.h"
includeva protezioni, non verrebbe incluso.
fonte
2015-05-09 12:40:23
Quelli che sono cercando di usare un hack (inclusione multipla) per risolvere un problema. Nel tuo nuovo codice, è meglio cercare di evitare questo tipo di soluzione e utilizzare sempre le protezioni incluse. – pmg