【问题标题】:backslash at end of string字符串末尾的反斜杠
【发布时间】:2026-01-14 01:50:02
【问题描述】:

有谁知道如何使用 Doxygen 来记录 Fortran 代码,其中为字符数组分配了一个以反斜杠结尾的字符串。我使用 Doxygen 1.6.1 版的以下代码进行了尝试:

program test
  character(80) :: test_char
  test_char = '\\test\test\'
  stop
end program test

并得到错误:“文件 test.f90 中的错误行:9,状态:20”

【问题讨论】:

  • 是否有错误代码或特定的错误诊断?这只是说哪里有一个错误。
  • @wallyk 没有错误代码或特定的错误诊断。但是我知道问题出在尾部反斜杠上,因为当我删除它时 Doxygen 运行正常。然而,这个尾随反斜杠是必需的,因此我无法从我的代码中删除它
  • 也许test_char = '\\test\test'//char(ichar('\')) 会是一个有用的组合?
  • 你用的是什么编译器?许多默认情况下,使用反斜杠作为字符串中的转义序列,但很可能有一个编译器标志可以让它们恢复正常。

标签: fortran doxygen


【解决方案1】:

这可能是 doxygen 1.6.1 的错误(doxygen 命令可能以 backslash 开头,而 \' 可能被错误解析)。

doxygen 的最新版本是 1.8.7,所以第一步是更新并尝试使用它。

如果没有帮助,您可以使用自定义过滤器从代码中的字符串中删除反斜杠字符。

【讨论】:

  • 这是 doxygen 中的一个已知问题,并且在 1.8.7 版中仍然存在,反斜杠被视为转义 ' 请参阅错误 596872 - Fortran:文字中的反斜杠始终被视为特殊字符
【解决方案2】:

谢谢大家。我最终使用了以下解决方案:

program test
  character(80) :: test_char
  character(2)  :: bckslsh = '\\'

  test_char = '\\test\test'//bckslsh(1:1)

  stop
end program test

【讨论】:

    最近更新 更多