【发布时间】:2021-12-21 10:51:25
【问题描述】:
我有一些 c 源文件。在里面,有多个 '//' 样式的 cmets 和其他 '/* */' 样式的。
我想将它们全部更改为 /* */ 以便在我的代码中更加统一,并尊重标准列宽。
如何自动更改所有这些 cmets?
感谢您的阅读!
编辑:我只是意识到我没有解释一些重要的事情。我需要更改我的 cmets 以使其与 C89 兼容。其余的编码风格已经兼容。只是我不想删除所有评论或手动编辑所有评论。而且我认为这也是一个有趣的问题。
【问题讨论】:
-
如果不为 C 编写解析器,通常是不可能的。如果你有一些语言的小子集并且不需要处理像
printf("foo // bar\n")这样需要保持不变的事情,那么它可能是可能的,但你d 需要定义该子集并提供用该子集编写的程序的综合示例。您可能想在 Google 上搜索“C 美化器”,看看它们中是否有人按照您的意愿行事。 -
有一些“美化”工具可以为您做到这一点。好的编辑器或 IDE 也可以为您做到这一点。
-
我有一些 c 源文件。它们的代码总行数是多少?
-
IMO,你想反其道而行之。将所有 K&R 转换为 ANSI。我这样做的 perl 脚本 [在任一方向] 大约 200 行
-
我会使用
sed 's;//\(.*\);/*\1 */;之类的东西,但我必须返回并确保它没有基于//进行转换,它碰巧发现它在字符串文字中。 (如果文件数量相对较少,我可能会在 emacs 中使用 query-replace-regexp ——但是,我是 emacs 用户。)
标签: python c bash awk formatting