可视化C++以帮助理解

4

我现在是一名正在学习C ++的学生。我们使用Dev-C ++进行小型、简短的练习。有时我很难知道我犯了什么错误或程序中到底发生了什么。我们的老师教我们画图。当使用链表和指针时,它们可能很有用,但有时我的图本身就是错的。

(可视化链接列表的示例图:nl.wikibooks.org/wiki/Bestand:GelinkteLijst.png)

是否有任何软件可以解释我的C++代码/程序并将其可视化(为我制作图形)?我找到了这个:link text

其他链接: cs.ru.ac.za/research/g05v0090/images/screen1.png和 cs.ru.ac.za/research/g05v0090/index.html

那看起来就是我需要的,但无法下载。我试图联系那个人,但没有得到答复。

有人知道这样的软件吗?我想其他学生也可能会觉得有用...

顺祝商祺,

juFo

4个回答

6

这篇文章标题与内容无关,但我想就如何理解程序中发生的事情提出一个简单的建议。

我不知道你是否看过调试器,它是一个非常好的工具,可以大大提高你对程序运行情况的理解。根据你使用的集成开发环境(IDE),它可能会有更多或更少的功能,其中一些功能可能包括:

  • 查看当前调用堆栈(允许你了解哪个函数正在调用哪个函数)
  • 查看当前可访问的变量及其值
  • 允许你逐步走过代码并查看每个值的变化
  • 以及其他很多很多。

因此,我建议你花些时间了解你所使用的IDE的特定调试器,并开始使用所有这些功能。有时候,比简单地点击“下一步”要多得多的东西。有些功能可能包括动态代码评估、回溯等等。


我在维基百科上找到了这个链接:http://en.wikipedia.org/wiki/List_%28C%2B%2B%29#List_Visualization这是由程序自动生成的还是手工绘制的?如果是自动生成的,使用的是什么软件? - juFo
@juFo:那只是手动绘制的图表,用于说明链表。 - JRL

2

看看DDD,它是一个调试器的图形化前端。

一般来说,尝试使用调试器来了解程序在做什么,它们可以逐步地引导您浏览代码。


1

Doxygen 如果我没记错的话,它有一个基本形式的这个功能,但它只是一个更大的库的次要特性,所以可能对你想要的东西来说有点过度。 (虽然它是一个很棒的文档程序!)


Doxygen实际上具有非常出色的可视化工具。它可以生成全面的调用图、调用者图、继承图,并且拥有最完整的C++解析器之一(实际上比MSVC的更好!) - coppro
非常好!自从我上次看到它以来,他们一定进行了改进。 - Toji

0

将代码逆向工程成某种形式的图表,在我看来效益有限。更好的了解程序流程的方法是在调试器中逐步执行代码。如果你还没有使用调试器,那么你应该使用它;这是解决这个特定问题的更合适的工具。

将代码逆向工程成图表在重用或维护未记录或文档不完整的遗留代码时很有用,但它很少暴露代码的设计意图,因为它缺乏你在设计代码时会使用的抽象。你不应该在刚刚编写的新代码上采用这样的方法!此外,做得比较好的工具价格昂贵。

如果你认为你可以避免设计,只需提交一个自动生成的图表,请不要这样做。很明显它是一个自动生成的图表!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接