C C++代码注释规范

c /c++注释规范 良好的注释习惯不仅可以提升代码阅读体验,也能减少不必要的误解,保证开发的效率以及工程的稳定 一般来说注释可以这样 // 单行注释 /* * 多行注释 */ /** * 多行注释 */ 第三种与第二种的区别在于它可以支持语法规则,在一些编译器上根据注释里的特殊字符串可以做到提示功能或者语法高亮,例如 Doxygen是一种开源跨平台的,以类似JavaDoc风格描述的文档系统,完全支持C、C++、Java、Objective-C和IDL语言,部分支持PHP、C#。鉴于Doxygen良好的注释风格,故基 阅读详情

1.标注总述

//-------------------------------------------------------------------
// Platform Defines
//-------------------------------------------------------------------
enum
{
    OST_PLATFORM_WIN32         = 1,
    OST_PLATFORM_LINUX_X86     = 2,
    OST_PLATFORM_LINUX_ARM     = 3,
    OST_PLATFORM_ANDROID       = 4,
    OST_PLATFORM_MACOSX        = 5,
};
 
//-------------------------------------------------------------------
// API Export/Import Macros
//-------------------------------------------------------------------
/** Indicates an exported and imported shared library function. */
#define OST_API_EXPORT        __declspec(dllexport)
#define OST_API_IMPORT        __declspec(dllimport)
 
//-------------------------------------------------------------------
// Digital Image Macros
//-------------------------------------------------------------------
#define OST_PI                        3.141592653589793f
#define OST_RGB2GRAY(r, g, b)        ( ((b) * 117 + (g) * 601 + (r) * 306) >> 10 )
 
//-------------------------------------------------------------------
// date and time at compile time
//-------------------------------------------------------------------
#define OST_TIMESTAMP                __DATE__ " " __TIME__

 2. 文件头的标注  

/*****************************************************************************
*  OpenST Basic tool library                                                 *
*  Copyright (C) 2014 Henry.Wen  renhuabest@163.com.                         *
*                                                                            *
*  This file is part of OST.                                                 *
*                                                                            *
*  This program is free software; you can redistribute it and/or modify      *
*  it under the terms of the GNU General Public License version 3 as         *
*  published by the Free Software Foundation.                                *
*                                                                            *
*  You should have received a copy of the GNU General Public License         *
*  along with OST. If not, see <http://www.gnu.org/licenses/>.               *
*                                                                            *
*  Unless required by applicable law or agreed to in writing, software       *
*  distributed under the License is distributed on an "AS IS" BASIS,         *
*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  *
*  See the License for the specific language governing permissions and       *
*  limitations under the License.                                            *
*                                                                            *
*  @file     Example.h                                                       *
*  @brief    对文件的简述                                                    *
*  Details.                                                                  *
*                                                                            *
*  @author   Henry.Wen                                                       *
*  @email    renhuabest@163.com                                              *
*  @version  1.0.0.1(版本号)                                                 *
*  @date     renhuabest@163.com                                              *
*  @license  GNU General Public License (GPL)                                *
*                                                                            *
*----------------------------------------------------------------------------*
*  Remark         : Description                                              *
*----------------------------------------------------------------------------*
*  Change History :                                                          *
*  <Date>     | <Version> | <Author>       | <Description>                   *
*----------------------------------------------------------------------------*
*  2014/01/24 | 1.0.0.1   | Henry.Wen      | Create file                     *
*----------------------------------------------------------------------------*
*                                                                            *
*****************************************************************************/

  3.命名空间

/**
 * @brief 命名空间的简单概述 \n(换行)
 * 命名空间的详细概述
 */
namespace OST
 {
 }

  4. 类、结构、枚举标注

/**
 * @brief 类的简单概述 \n(换行)
 * 类的详细概述
 */
class Example
 {
 };

枚举类型定义、结构体类型定义注释风格类似

/** 
 * @brief 简要说明文字 
 */
typedef struct 结构体名字
 {
      成员1, /*!< 简要说明文字 */ or ///<说明, /**<说明 */
      成员2, /*!< 简要说明文字 */ or ///<说明, /**<说明 */ 
      成员3, /*!< 简要说明文字 */ or ///<说明, /**<说明 */ 
 }结构体别名;

  5. 函数注释原则  

/** 
 * @brief 函数简要说明-测试函数
 * @param index    参数1
 * @param t        参数2 @see CTest
 *
 * @return 返回说明
 *     -<em>false</em> fail
 *     -<em>true</em> succeed
 */
bool Test(int index, const CTest& t);

  6. 变量注释

/// 简述
/** 详细描述. */

或者

//! 简述
//! 详细描述
//! 从这里开始
int m_variable_1; ///< 成员变量m_variable_1说明
int m_variable_2; ///< 成员变量m_variable_1说明
    
/**
* @brief 成员变量m_c简要说明
*
* 成员变量m_variable_3的详细说明,这里可以对变量进行
* 详细的说明和描述,具体方法和函数的标注是一样的
*/
bool m_variable_3;

如果变量需要详细说明的可已按照m_varibale_3的写法写,注意,m_variable_2和m_variable_3之间一定需要空行,否则会导致m_variable_2的简述消失

 7. 模块标注 模块定义格式

/**
* @defgroup 模块名  页的标题名 (模块名只能英文,这个可以随便取.在一个源文件里不能相同)
* @{ (跟c语言{一样起作用域功能)
*/
… 定义的内容 …
/** @} */

例:

/**
* @defgroup HenryWen Example.cpp
* @{
*/
  … 定义的内容 …
/** @} */

  8. 分组标注 分组定义格式

/**
* @name 分组说明文字
* @{
*/
… 定义的内容 …
/** @} */

例:

/**
* @name PI常量
* @{
*/
#define PI 3.1415926737
/** @} */
 
/**
* @name 数组固定长度常量
* @{
*/
const int g_ARRAY_MAX = 1024;
/** @} */

编程 | C/C++代码规范注释 注释风格 1. 总述 一般使用//或/**/,只要统一就好。 2. 说明 //或/**/都可以,但团队要在如何注释及注释风格上确保统一。 文件注释 1. 总述 在每一个文件开头加入版权、作者、时间等描述。 文件注释描述了该文件的内容,如果一个文件只声明,或实现,或测试了一个对象,并且这个对象已经在它的声明处进行了详细的注释,那么就没必要再加上文件注释,除此之外的其他文件都需要文件注释。 2. 说明 法律公告和作者信息: 每个文件都应该包含许可证引用。也要为项目选择合适的许可证版.. 阅读详情

相关推荐

C/C++ 程序员编程规范之注释(参考)

编程规范(注释) 注释的原则是有助于对程序的阅读理解,在该加的地方都加了,注释不宜太多也不能太少,注释语言必须准确、易懂、简洁。 说明性文件(如头文件.h文件、.inc文件、.def文件、编译说明文件.cfg等)头部应进行注释. 注释适当列出:版权说明、版本号、生成日期、作者、内容、功能、与其它文件的关系、修改日志等,头文件的注释中还应有函数功能简要说明。 源文件头部也应进行注释. 列出:版权说明、版本号、生成日期、作者、模块目的/功能、主要函数及其功能、修...

探索C++编程的奥秘,分享深入的技术见解和实践,旨在激发读者创造力与解决问题的思维。 5289

C++代码规范和Doxygen根据注释自动生成手册

《C++代码规范和Doxygen根据注释自动生成手册》讲师:夏曹俊课程收益学会C++代码规范,并理解为什么要有这些规范。学会C++代码注释规范,并能自动生成文档。适合人群C++初学者,掌握代码规范项目管理者制定代码的规范学习计划跟着视频学习,理解每个规则的意义课程目标理解每种规则的意义能够自己定义代码规则 常见问题课程使用的开发工具?课程使用的开发工具是vs2019课程是否提供文档和源码?课程提供源码和开发规则文档

C++注释规范.pdf

规范的注释代码是一种很好的习惯,你需要帮助,而C++注释规范可以帮助你

C++复习笔记--C++常用注释规范

⑨ @retval 表示返回值,用于说明返回值的意义(例如可以说明 -1 表示异常)① @brief 表示简介,用于简单介绍函数或类的作用和功能;② @param 表示参数,用于介绍和说明函数或类的参数;③ @return 表示返回类型,用于说明函数的返回类型;⑦ @exception 用于说明可能引起的异常信息;⑧ @property 表示属性,用于说明属性信息;⑥ @version 表示版本,用于介绍版本信息;④ @author 表示作者,用于介绍作者信息;⑤ @data 表示日期,用于介绍日期信息;

牵一只蜗牛去散步 2304

c++的注释格式规范

1. ##fhd 版权所有 (C), 2010-$YEAR$, ****有限公司 文 件 名 : $FILE$ 版 本 号 : 初稿 作 者 : zhujun/016660 生成日期 : $YEAR$年$MONTH$月$DAY$日 最近修改 : 功能描述 : $end$ $selected$ 函数列表 : 修改历史 : 1.日 期 : $DATE$ $HOUR$:$MINUTE$:$SECOND$ 作 者 : zhujun/016660 修改内容 : 创建文件 *****************************************************************************/

kaggle注册以及数据集下载全流程

kaggle注册,数据集下载及常见问题

Arriteey的博客 2万+

函数 注释规范_C/C++代码规范注释有哪些讲究?

如果领导给你一个项目的源码让你阅读,并理解重构代码,但里面一句注释都没有,我想这肯定是之前同事“删库跑路”了。看一份源码什么很重要?除了各种代码规范之外,还有一个比较重要的就是注释。注释虽然写起来很痛苦, 但对保证代码可读性至关重要,下面的将描述如何注释以及在哪儿注释。1注释风格1.总述一般使用//或/**/,只要统一就好。2.说明//或/**/都可以,但//更常用...

weixin_36337823的博客 2049

清华开源GPGPU“承影Ventus”初体验:用RISC-V RVV指令集跑通第一个OpenCL程序

本文详细介绍了清华大学开源GPGPU“承影Ventus”的开发实践,展示了如何基于RISC-V RVV指令集运行首个OpenCL程序。从环境配置、内核开发到性能优化,全面解析了这一创新架构的开发流程,为开发者提供了在RISC-V生态中进行通用GPU计算的实用指南。

weixin_30415113的博客 489

【C&C++】C/C++代码如何写规范注释

基于doxygen要求的注释规则进行制定C/C++的注释规则. https://www.doxygen.nl/manual/docblocks.html 本文已Amazon AVS C++ SDK D-Bus client实现中的DBusConnection.h的注释为例子. 另外通过Doxygen这一工具记性API reference 文档的生成, 如何利用Doxygen自动生成API Reference说明文档 /* * Copyright Amazon.com, Inc. or its affili

love131452098的博客 223

基于AIS动态数据与AI结合得经纬度标示算法

港口船舶智能标注系统 本系统通过结合摄像头视频流和AIS船舶动态数据,利用AI技术实现船舶实时标注功能。系统架构包括视频流处理、AIS数据解析、船舶检测匹配和坐标映射转换等模块。关键技术步骤: AIS数据获取:通过本地接收机或网络API获取船舶位置、航速等信息 AI目标检测:采用YOLOv8等模型识别视频中的船舶 船舶匹配算法:通过位置投影或运动轨迹匹配视频目标与AIS数据 坐标映射:使用相机标定技术将经纬度转换为图像坐标 实时标注:在视频画面上叠加船名、位置等关键信息 应用场景包括港口监控、智能海事管理和

qianbo042311的博客 1808

DINOv3实战指南:如何利用零样本视觉模型革新工业质检

本文详细介绍了如何利用DINOv3零样本视觉模型革新工业质检流程。通过无需标注数据的自监督学习技术,DINOv3能快速部署高精度检测系统,显著降低成本和提升效率。文章涵盖模型选型、数据准备、实时检测优化及典型行业解决方案,为工业质检提供革命性AI实践指南。

ansible6ops的博客 123

注释是写在接口上还是实现类上_C/C++代码规范注释有哪些讲究?

关注、星标公众号,不错过精彩内容编排 |strongerHuang微信公众号:strongerHuang如果领导给你一个项目的源码让你阅读,并理解重构代码,但里面一句注释都没有,我想这肯定是之前同事“删库跑路”了。看一份源码什么很重要?除了各种代码规范之外,还有一个比较重要的就是注释。注释虽然写起来很痛苦, 但对保证代码可读性至关重要,下面的将描述如何注释以及在哪儿注释。strongerHuan...

weixin_39545805的博客 1074

【Codesys】获取从站信息,判断是否从站断联,总线丢失

获取EtherCAT从站信息,判断是否从站断联,总线丢失

qq_35316470的博客 5731

C/C++代码规范注释有哪些讲究?

关注、星标公众号,不错过精彩内容编排 |strongerHuang微信公众号:strongerHuang如果领导给你一个项目的源码让你阅读,并理解重构代码,但里面一句注释都没有,我想这...

strongerHuang 1355

解决Qt字体问题:QFontDatabase: Cannot find font directory xx/lib/fonts

1.直接在main函数里设置app的整体字体库.这个错误提示比较明显的就是字体库缺失。

有问题或资源连接有缺失的可以私信公众号新潮看世界获取 3043

RK3399平台开发系列讲解(内核入门篇)1.2、如何高效的阅读Linux内核设备驱动

内核开发在很大程度上并不是重新造“轮子”的过程,而是深入理解并尽量复用现有的内核设计框架,然后参照相似的功能模块去添加或改写某项需要的功能。在对内核整体框架以及某些子系统融会贯通以后,我们才有可能站在巨人的肩膀上去改进框架本身,实现自主创新。如果过分强调不必要的“自主创新”,可能会让内核的可维护性变差,最终结果反而得不偿失。 那么此次就分享就围绕如何高效的阅读内核驱动代码:

内核笔记 7341

C/C++ 代码注释规范及 doxygen 工具

C++ 注释规范及 doxygen 配置和文档生成

jucat的博客 2370

AUTOSAR从入门到精通-【应用篇】基于AUTOSAR架构的混合动力电池 ECU 软件开发

由于严峻的环境污染和能源短缺问题,各国都在致力于发展新能源车,以达到节能排放的目的。在此背景下,12V启停系统由于成本较低廉、匹配方便,得到广泛应用。但是12V系统作为启停系统后存在许多问题,比如节能和减排效果有限,并且轻度混合动力系统的功率需求通常在10~15KW,在此电压条件下运行时,电池的电流会达到1000A,因此该方案行不通。高压混合动力系统(>110V)的节油效果好,但是成本很高,并且需要大功率的电机。48V混合动力系统比高压混合动力系统成本。

getusushu的博客 1488

c++ doxygen 注释规范_C语言代码注释参考

简述该参考是基于Doxygen注释规范进行简单归纳,可以适当根据自己的需求进行约定。Doxygen可以从一套归档源文件开始,生成HTML格式的在线类浏览器,或离线的LATEX、RTF参考手册。简单来说就是一个程序的文件产生工具,可将程序中的特定注释转换成为说明文件。注释规范内容1. 简单注释(1) 单行注释///(2) 多行注释/**2. 文件注释/***@file文件名*@brief...

weixin_29416629的博客 270

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

代码注释你写对了吗? Doxygen 风格注释,一目了然!

本文围绕 C/C++ 注释规范,介绍了 Doxygen 风格注释。先说明其是标准化格式,可生成结构化文档,支持多种语言,核心是特定标签。接着详细列出文档结构、函数方法等八类标签及使用提示。然后阐述使用方法,包括文件头部、类、函数等多种场景的注释要点与示例,还提及注释风格约定、禁忌及 C++ 特殊注意事项,最后提到相关工具链支持。

memoryfurong的博客 3687

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

C/C++代码头注释规范

/*********************************************************************************   *Copyright(C),Your Company   *FileName:  // 文件名   *Author:  //作者   *Version:  //版本   *Date:  //完成日期   *Descri

insprion的专栏 7971

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

C/C++ 代码规范: 命名规则、注释、格式

摘抄精简Google 开源项目风格指南: http://zh-google-styleguide.readthedocs.org/en/latest/contents/ 一. 命名规则 永远不要使用单词缩写(如count写成cnt) C/C++ 代码规范: 命名规则、注释、格式 变量名:     小写字母,下划线连接,一般用名词,如error_count     类的成员变量以下划线结尾,如my_exciting_memb

quinn的专栏 6429

C/C++函数注释规范:提升代码可读性与团队协作效率的工程实践

在软件开发中,代码注释是提升可读性和可维护性的基础技术手段。其核心原理在于通过结构化的文本描述,为代码逻辑提供上下文和设计意图,从而降低理解成本。从技术价值看,规范的注释不仅是文档,更是团队协作和知识传承的契约,能显著减少沟通开销,并支持自动化文档生成。在实际应用场景中,尤其在大型C/C++项目、开源协作或长期维护的遗留系统中,统一的注释格式(如Doxygen风格)能确保信息一致性,便于工具解析和API文档自动提取。本文聚焦于C/C++函数注释的工业级实践,详细拆解了包括参数说明、返回值、异常处理等在内的完

weixin_30239339的博客 471

给代码写注释时有哪些讲究?

整理/来源丨strongerHuang 如果领导给你一个项目的源码让你阅读,并理解重构代码,但里面一句注释都没有,我想这肯定是之前同事“删库跑路”了。看一份源码什么很重要?除了各种代码规范...

互扯程序的博客 203
上一篇: 2.5、元素 x 插入递增有序的顺序表
下一篇: 2.6、合并两个递增顺序表 / 单链表
洛必不达法则
博客等级 码龄6年 324粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值