Существует ли препроцессор C, который может заменить смежные директивы else и ifdef?

#c #c-preprocessor #preprocessor #preprocessor-directive

#c #c-препроцессор #препроцессор #препроцессор-директива

Вопрос:

У меня есть фрагмент кода, который выглядит следующим образом,

 #ifdef A
  printf("A");
#else
  #ifdef B
    printf("B");
  #endif
#endif
 

else и ifedef B может быть заменен на elif defined B согласно this .
Но разве elifdef на языке C нет директивы?


ПРИМЕЧАНИЕ: elif B не подходит для этого, ему нужно выражение; где as A , B являются переключателями времени компиляции, для которых не определено значение.

Комментарии:

1. Короткий ответ: нет. Длинный ответ: в чем дело elif defined ?

2. Слишком поздно добавлять это сейчас. Этот корабль отплыл в 1970-х годах.

3. Какова реальная проблема, которую вы пытаетесь решить с помощью этого?

4. @DYZ, никаких проблем при запуске кода, так как все «предварительно» обработано. Просто меньше материала для написания кода

5. @tadman, :D. Но, помимо стандартов C, какие-либо расширения компилятора?