Я использую m4 в коде fortran для генерации определенного кода на основе флагов, определенных в файле параметров.Тройная условная проверка с помощью ifdef в M4
Я знаю очень мало предварительной обработки и, следовательно, не очень хорошо знаю M4. Я пытаюсь написать код, где мне нужно определить вещи, основанные на трех случаях: изотермический, баротропный, ни один. Я написал следующий код:
#ifdef isothermal
do something (1)
#elif barotropic
do something (2)
#else
do something (3)
#endif
Теперь, когда я скомпилировать код, он компилирует нормально с изотермическим [сделать что-то (1)] и (без изотермического и баротропного определенного) [делать что-то (3)]. Но когда я определяю баротропный, он возвращается к [сделать что-то (3)] вместо [сделать что-то (2)].
Любые указатели на то, как бороться с такой ситуацией в m4?
Спасибо!
Это работает! Изменил мой downvote на upvote. – Demi