如何知道C函数中局部声明/循环的行号

我想知道在给定的C函数中哪个行号是声明。 还有哪些行有if / while / for循环或哪些行跨越多行(即它们不在同一行结束)。

我想我们需要知道你为什么要这个行号来帮助你。

不同:

1)您可以在代码中使用__LINE__来获取当前行号。 2)大多数编辑者可以在代码旁边显示行号。

如果你想编写断点,我不确定这是否可行 – 我建议在文件名和函数上设置断点,然后将代码拆分为足够的。 或者研究完成测试的其他方法 – 例如拆分代码,以便unit testing可以检查它。

也许我不明白你的问题,但你可以使用ctags (或其中一个变体)来获取声明列表及其行号。

例如, 旺盛的ctags能够为所有类型的C / C ++语言标签生成标签(行号),包括以下所有内容:

  • class级名称
  • 宏定义
  • 枚举名称
  • 统计员
  • function定义
  • 函数原型/声明
  • class,interface,struct和union数据成员
  • 结构名称
  • 类型定义
  • 工会名称
  • 变量(定义和外部声明)

如果可以,请使用diff工具。 它提供行号作为输出的一部分。 然后,您的工具可以解析该输出,查找声明或主代码。