Я хочу присвоить значение макросу, основанному на значении другого макроса. Однако два макроса подключены. Есть ли способ избежать этого? Следующий минимальный пример показывает, что мне нужно:Могу ли я каким-то образом иметь статические макросы C?
#define VALUEA "A"
#define VALUEB "B"
// somewhere I define CHOOSE
#define CHOOSE VALUEA
// MY_MACRO shall have the value of CHOOSE, but AT THE MOMENT of this line.
// I want to reassign CHOOSE while MY_MACRO stays the same.
#define MY_MACRO CHOOSE
// now MY_MACRO has evaluates to CHOOSE evaluates to "A"
#define CHOOSE VALUEB
// now MY_MACRO has evaluates to "B" but I want it to be "A"
Может #define и директивы директивы #undef помочь в вашем сценарии? – GingerJack
То, что вы просите, невозможно, если вы не определяете 'MY_MACRO' как' VALUEA' напрямую. – user694733
Может быть? Что произойдет, если я определяю и переопределяю ВЫБОР? – Fabian