Header file-name come argomento
-
21-09-2019 - |
Domanda
Obiettivo: Ho un elenco di file di intestazione (circa 50 di loro), E ogni file di intestazione ha pochi array con elementi costanti. Ho bisogno di scrivere un programma per contare gli elementi dell'array. E creare qualche altra forma di uscita (che verrà utilizzato dal gruppo di hardware).
La mia soluzione: Ho incluso tutti i 50 file dispari e ho scritto un'applicazione. E poi ho mollato tutti gli elementi dell'array nel formato specificato.
Il mio ambiente: Visual Studio V6, Windows XP
Il mio problema: Ogni volta che c'è un nuovo insieme di file di intestazione, ora sto cambiando le impostazioni del progetto di VC ++ per indicare il nuovo set di file header, e quindi rigenerare.
La mia domanda:
Un po 'in-sane però,
- C'è un modo per parlare del intestazione di qualche linea di comando argomenti o qualcosa del genere?
- Voglio solo evitare una nuova compilazione del fonte ogni volta ...
Soluzione
standard C e C ++ consentono di utilizzare una macro in:
#include SOME_MACRO_HERE
Il valore espanso di SOME_MACRO_HERE
deve guardare corretta di direttiva #include
.
Quindi, in linea di principio, è possibile utilizzare l'equivalente di MSVC:
cc -DSOME_MACRO_HERE='<actualheader.h>' sourcefile.c
o
cc -DSOME_MACRO_HERE='"actualheader.h"' sourcefile.c
Questo sembra fornire una risposta alla tua prima domanda di proiettile.
Non sono convinto che si può evitare la ricompilazione -. Si può (forse) evitare la modifica, anche se
Altri suggerimenti
intestazioni sono incluse al momento della compilazione quindi non c'è alcun mezzo per cambiare / aggiungere intestazioni in fase di esecuzione.
Perché non basta scrivere una sceneggiatura breve e semplice Perl che analizzare le intestazioni e contare il numero di elementi di matrice?
In realtà sono arrivato a una soluzione che funziona.
- Step-1: l'intestazione del file-nomi sarebbero essere predefiniti
- Step-2: intestazioni (set) con diversi valori dei parametri saranno posti in diverse cartelle
- Step-3: Durante la compilazione, scegliere il percorso con le intestazioni appropriate
La soluzione non è quello che volevo, ma ancora, era meglio riuscivo a capire.