我在我的 fortran 代码中使用 m4 根据我的参数文件中定义的标志生成特定代码。
我对预处理知之甚少,因此不太了解 M4。我正在尝试编写代码,我需要根据三种情况来定义事物:等温、正压,两者都不是。我写了以下代码:
#ifdef isothermal
do something (1)
#elif barotropic
do something (2)
#else
do something (3)
#endif
现在,当我编译代码时,它可以很好地编译等温 [做某事 (1)] 和(没有定义等温和正压)[做某事 (3)]。但是当我定义正压时,它会退回到 [做某事 (3)] 而不是 [做某事 (2)]。
有关如何在 m4 中处理这种情况的任何指示?
谢谢!