Документ взаимоисключающий определяет
Я пишу небольшую программу на C и хочу документировать ее, чтобы другие могли изменить некоторые детали. Я написал файл config.h с #define
s, которые позволяют некоторые операции или нет, некоторые из них являются взаимоисключающими, другие нет.
Пример не взаимоисключающего:
#define USE_A
#define USE_B
#define USE_C
Пример взаимоисключающего:
#define BUILD_FULL
#define BUILD_COMPACT
До сих пор я выбирал конфигурацию программы для компиляции, документируя функции, которые я не хочу использовать, например:
//#define BUILD_FULL
#define BUILD_COMPACT
построить компактный исполняемый файл.
Как я могу написать документацию для закомментированных функций?
Я старался:
#define USE_A //!< Special Feature
#define USE_B //!< Special Feature
//#define USE_C //!< Special Feature
Я скомпилировал это без USE_C
но, очевидно, я потерял документацию, потому что doxygen не проанализировал ее. Как бы вы переписали #define
поток, если я неправильно понимаю правильный способ использования определений?
1 ответ
Вы можете проверить значение макроса, а не только его наличие. Например, используйте 0, чтобы отключить опцию, или 1, чтобы включить ее. Затем используйте #if
вместо #ifdef
проверить состояние.
#define USE_A 1 //!< Special Feature
#define USE_B 1 //!< Special Feature
#define USE_C 0 //!< Special Feature
#if USE_A
...
#elif USE_C
...
#endif