nel nostro progetto C/C++ usiamo un colpo di testa di configurazione (~ 1000 linee), che è pieno di # ifdef e di #definesAlternative/Strumenti per la # define inferno C/C++
#if (defined(HW_1) || defined(SOME_TECHNOLOGY_SUPPORTED)) && defined(OTHER_TECHNOLOGY_SUPPORTED)
#define SOME_FEATURE_AVAILABLE
#endif
Nella nostra configurazione di generazione abbiamo predefinite alcune definizioni che vengono passate al compilatore. Ciò si traduce in diverse definizioni (come SOME_FEATURE_AVEILABLE) nella nostra intestazione di configurazione.
Poiché la nostra intestazione di configurazione è abbastanza grande, c'è anche un po 'di confusione.
Ci sono alternative per questo inferno #define
?
Oppure ci sono strumenti che aiutano a vedere in che casi vengono definiti i set.
Stiamo sviluppando il firmware incorporato in modo che non possiamo sostituire la compilazione condizionale di runtime se lo è.
Su quale sistema si compila. Per quale sistema operativo? Cerca 'autoconf' e' autotools' .... –
Se ti limiti ad ANSI C89 e ISO C++ 98, non ne hai bisogno. –
Tuttavia, il compilatore può essere in grado di ottimizzare se condizionali se si definiscono i valori const statici. – Frodo