4

我知道之前有人问过这个问题(例如:请参阅Remove comments from C/C++ code),但我没有找到任何令人满意的结果。

我正在解析一组复杂的 C/C++ 代码,首先必须对其进行规范化,其中包括消除输入源代码中的注释。

我尝试过的所有注释工具都在一定程度上失败了,其中包括:

  • 分解
  • 剥离cmt
  • 时钟

注意:我也尝试过“gcc -fpreprocessed -E”,但并没有得到完美的结果;输出有一些奇怪的宏注释,用于跟踪某些代码行。

为了说明特定工具 (cloc) 的问题,从该头文件中删除注释也会导致删除非注释,例如该文件开头的所有包含。

也就是说,是否有任何可靠的注释删除工具可用于在异常复杂的代码中删除注释?

非常感激。

4

2 回答 2

3
#!/bin/bash

if [[ "$#" != 1 ]] ; then
  echo "Usage: stripcomments input-file" > /dev/stderr
  exit
fi

gcc -fpreprocessed -dD -E -P "$1" 2> /dev/null
于 2013-08-13T00:01:45.597 回答
-1

//您可以在 EOL 之前删除所有内容,如果您愿意,还/*可以*/使用几个正则表达式...

对于单行注释,您可以使用:\/\/(.*)

对于多行注释,这:\/\*(.*)\*\/

于 2016-08-10T23:33:51.587 回答