c++ - 如何正确评论

标签 c++ c comments header-files

<分区>

这是一个非常简单的问题,令我惊讶的是我在 SO 上没有找到其他任何地方。我想知道哪些注释应该或不应该在头文件/源文件中,甚至,因为某些语言并不真正使用头文件/源系统,什么是正确的注释方式.

到目前为止,我一直是这样做的:

ma​​in.c 或 main.cpp

int main()
{
    // Comments to describe what happens in main
}

foo.h

 // Comments for documentation and which gives information about the function itself

/**
* \fn void aFunction(void)
* \brief This function is a function
*/
void aFunction(void);

foo.c 或 foo.cpp

void aFunction(void)
{
    // Comments to describe and explain what happens within this function
}
  • main 中的注释不多,只是描述了基本调用了哪些函数以及为什么调用
  • 在标题中,仅注释描述函数本身;参数、简介、返回等。
  • 在源代码中,仅注释来描述函数中发生的事情;循环、条件等。

这就是我所知道的。 main、source 或 header 中是否需要更多注释?我是否也应该添加我通常只放在源头中的注释,像这样:

foo.c 或 foo.cpp

/**
* \fn void aFunction(void)
* \brief This function is a function
*/
void aFunction(void)
{
    // Comments to describe and explain what happens within this function
}

我知道这听起来可能很主观,但显而易见的事实是,有些开发者比其他开发者更擅长发表评论,因此发表评论的方式有好有坏。

最佳答案

C 文件应该包含您编写代码时在任何地方编写的常用注释。它是做什么的,为什么。通常在每一行的末尾,除非需要更广泛的注释。

H 文件可以包含一个简短的最小值,解释一个函数将什么作为参数以及它返回什么。或者,它可以包含有关应如何使用该功能的完整文档。如果头文件中没有提供完整的文档,您将不得不单独编写。注意:几行 Doxygen 废话只是为了生成某种无用的“文档”文件,不算作完整的文档。

H 文件记录了一个函数的作用以及应该如何使用它,但没有提及实现细节。重要的是要认识到 h 文件应该是相应 c 文件(或库)的完整、独立的接口(interface)。调用者需要知道的所有类型和依赖项(包括)都应该存在于 h 文件中。

这包括任何前置条件和后置条件:在调用函数之前需要执行什么?该功能使用了哪些资源?它是否留下了任何需要稍后清理的句柄/文件/资源​​?它是否改变了一些全局状态?等等等等

相应的 c 文件不一定可供用户使用,用户也不需要阅读 c 文件以了解应如何使用其中的功能。仅通过 h 文件,一切都应该变得显而易见。

关于c++ - 如何正确评论,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43997555/

相关文章:

c++ - C++ 中的别名和引用是一回事吗?

c - 在 C 中以流方式读取和处理内存中的 XML 数据

c - 获取最后一个成员的最终字节数

comments - 如何检查 OCaml 顶层 (*) 的类型?

python - 注释行超过 79 个字符

c++ - C++ 11条件变量语义

c++ - 游戏逻辑的异步屏幕更新,C++

comments - 注释如何影响代码?

C++ winAPI 基础 - 通过窗口切换

c - 从 NASM 函数返回字符数组