生成注释以解释C ++程序的结构

时间:2012-06-16 16:54:05

标签: c++ syntax comments

是否有任何(合理)直接的方式来生成注释来解释C ++程序的结构?例如,我想将此代码作为输入:

int main(){
cout << "Hello World!";
return 0;
}

并将其生成为输出:

int main(){
//create a function called main that returns an integer and takes no parameters.
cout << "Hello World!";
//print the string "Hello World" to the standard output.
return 0;
//the function main returns 0
}

如果可以做到这一点,它可能会使(任何C ++程序的语法)对于初学者来说稍微不那么令人生畏。

如果C ++(使用现有工具)无法做到这一点,那么(任何类似工具)是否可用于其他编程语言?

7 个答案:

答案 0 :(得分:2)

cdecl工具(以及http://cdecl.org/的在线版本)来解释声明。看一看。

答案 1 :(得分:1)

您的示例非常冗长,只会使任何源代码完全无法读取。有些解决方案比较简洁,但更像是www.doxygen.org/,我听说它很受欢迎。

答案 2 :(得分:0)

你在评论中添加的内容没有多大意义 - 函数返回整数或不参数的事实是函数原型不言自明的。但是,如果你的意思通常是用于解释函数如何工作的自动注释工具,那么就有了一些东西。

我不确定这对C ++是否适用于C#,但是有一个名为GhostDoc的Visual Studio插件可以根据变量/函数/等名称等生成“人类语言”注释。 你可以在这里看到它:http://www.youtube.com/watch?v=4aA4VZoVDQw(视频的第二部分)。

即使它没有完全解决你的问题,也许它会给你一个提示要找的东西。

答案 3 :(得分:0)

如果我理解你的问题,你会想要一个工具,通过在每一行注入相应的文档来“解释”代码。

据我所知,正如你对初学者说的那样,并且在现有代码上运行它,以这种方式编写代码是完全没用的(这就是为什么你会得到downvotes)。

这些评论只是现有代码的重复,因此完全没用。如果您更改代码并且不更改注释会发生什么?最糟糕的是,如果你再次运行你的工具,你是期望它删除旧的评论还是留下它们?

好的评论应该为代码添加有用的信息(作为编码器的意图,或者要避免的技巧等等)但是大声读取代码只是噪音。

所以回答你的问题,我认为不,没有工具可以做到。但是,某些IDE可能会提供类似的功能,您可以将这些信息放在工具提示上,同时将鼠标悬停在一行代码上,但绝对不能在代码中作为注释。

答案 4 :(得分:0)

也许您正在寻找的是有文化的编程? http://www-cs-faculty.stanford.edu/~uno/cweb.html

答案 5 :(得分:0)

评论不应该描述代码会做什么。评论应该解释,

  • 意图是什么,必须执行哪项任务
  • 程序员期望什么,为什么要采取特定的分支
  • 为什么程序员以这种方式编写代码

答案 6 :(得分:0)

在我看来,意图不是在程序中实际包含此类注释。这只是为初学者提供一些方法来询问“这种语法是什么意思?”对于特定的事情,有一些有限的解决方案,例如cdecl.org用于声明语法,但没有什么一般的。这不会是微不足道的。也许可以在Clang库之上相对容易地(仅相对)构建一些用于处理c ++的东西。