Desidero utilizzare una direttiva #include
con un nome file passato come macro definita esternamente.Sostituzione delle macro nella direttiva #include
E.g.
#include #FILE".h"
dove FILE
sarebbe definito come la stringa MyFile
(senza virgolette), con conseguente
#include "MyFile.h"
Lo stringizing operatore # non possono essere utilizzati qui come simbolo FILE
non è un argomento di macro. Ho provato altri approcci, senza risultato.
Vedete una soluzione?
gcc fornisce alcune funzionalità * esternamente * include i file http://stackoverflow.com/questions/3387453/include-header-files-using-command-line-option. Questo potrebbe aiutarti. –
Interessante. Sto usando sia gcc che MSVC e la mia direttiva #include potrebbe non essere nella prima posizione. –
Non sarà possibile, poiché la concatenazione letterale stringa adiacente non viene eseguita fino a dopo lo stadio del preprocessore, quindi ad es. '" MyFile "". H "' non sarà un nome di inclusione valido. Non puoi semplicemente definire "FILE" come il nome effettivo dell'intestazione da includere, ad es. '-DFILE = "MYFILE.H"'? –