 nanorobot (13.05.2015 21:27, просмотров: 4444)
 nanorobot (13.05.2015 21:27, просмотров: 4444)
Вопрос знатокам препроцессора в программе могут быть либо определены, либо нет, в зависимомти от значений макросов вида USE_OPTION_XXX некие опции, например
#ifdef USE_OPTION_1
#define OPTION_1    3
#endif 
#ifdef USE_OPTION_2
#define OPTION_2    1
#endif 
#ifdef USE_OPTION_3
#define OPTION_3    0
#endif 
количество опций <= 32
числовые значения каждой опции уникальны и и имеют значения от 0 до 31
далее мне требуется макросы, вида
#define OPTIONS_LIST_1  1 << OPTION_1    | \
                        1 << OPTION_XX   | \
                        1 << OPTION_YY
#define OPTIONS_LIST_3  1 << OPTION_ZZ   | \
                        1 << OPTION_1    | \
                        1 << OPTION_0
при этом некоторые OPTION_XX могут быть неопределены в данной конфигурации программы. В этом случае соответствующие битики в макросе OPTION_LIST_XX должны быть = 0
конструкция такого вида не прокатывает:
#define OPTIONS_LIST_3  1 << OPTION_ZZ   | \
#if USE_OPTION_1
                        1 << OPTION_1    | \
#endif
                        1 << OPTION_0
как быть?