Naszym C/C++ projektu używamy nagłówka konfiguracji (~ 1000 linii), który jest pełen # ifdef i #definesAlternatywy/Narzędzia dla #define piekła C/C++
#if (defined(HW_1) || defined(SOME_TECHNOLOGY_SUPPORTED)) && defined(OTHER_TECHNOLOGY_SUPPORTED)
#define SOME_FEATURE_AVAILABLE
#endif
W naszej konfiguracji kompilacji mamy predefiniuj niektóre definicje, które są przekazywane do kompilatora. Powoduje to różne definicje (np. SOME_FEATURE_AVEILABLE) w naszym nagłówku konfiguracji.
Ponieważ nasz nagłówek konfiguracji jest dość duży, jest też trochę bałaganu.
Czy są jakieś alternatywy dla tego piekła #define
?
Czy są jakieś narzędzia, które pomagają zobaczyć, w jakim przypadku są zdefiniowane.
Rozwijamy wbudowane oprogramowanie układowe, więc nie możemy zastąpić warunkowej kompilacji przez środowisko wykonawcze.
Na którym systemie się kompilujesz. Dla którego systemu operacyjnego? Poszukaj 'autoconf' i' autotools' ... –
Jeśli będziesz trzymać się ANSI C89 i ISO C++ 98, nie potrzebujesz żadnego z nich. –
Nadal kompilator może być w stanie zoptymalizować, jeśli warunkowe, jeśli zdefiniujesz statyczne const booleans. – Frodo