我正在寻找一种从一些C / C ++源代码中打印出特定函数的简单方法。例如,假设test.c中有几个定义的函数。我希望能够打印出与这些功能中只有一个相关的源代码。
编辑:对不起,我应该更清楚一点我的最终目标。我希望打印到屏幕上的功能,以便我可以使用wc
来获取此特定功能的字数。此外,我希望这是命令行工具链的一部分,因此不能手动输入文件和选择文本。
答案 0 :(得分:2)
答案 1 :(得分:0)
我通常使用print-region
中的print-region-with-faces
(或者最好是emacs
)。但是,它不是自动化的,我必须手动选择区域。
也适用于其他语言。
以下是评论中的Tom Smith:
(defun print-fn (interactive)
(save-excursion (mark-defun)
(print-region)))
如果你喜欢这个,请点击Tom的用户页面链接,看看他是否值得投票......
制作这个CW,所以我不会从投票汤姆的好思想中受益。欢呼声。
澄清后编辑:这似乎没有指出OP的实际问题。唉。
答案 2 :(得分:0)
打印功能的最终目标是什么?
你想这样使用它吗?
if (error == Foo())
{
PrintFunction(foo);
exit(1);
}
有更简单的方法可以输出错误。如果我对你要解决的问题有了更好的了解,我可能会帮助更多。
了解如何实现这样的PrintFunction():
- 有一个包含函数的数据结构,包含:function line start,function line end,也许是指向函数的指针。
- 编写一个打印出行数的函数 源文件。
__FILE__
为您提供源文件名。- 知道函数所在的起点和终点 代码,打印功能将是微不足道的。
醇>
这有一个恼人的缺陷,需要更新你的函数在文件中的位置的行号。但这可能可以用宏来解决。