当前位置: 首页 > news >正文

代码规范(C/C++规范)

文章目录

  • 前言
  • 个人编写的代码规范
    • 链接
    • 请求合作
    • 大体章节
  • END

前言

  • 什么是代码规范
    • 一套用于统一代码开发的准则
  • 为什么需要代码规范
    • 提升代码可读性,提升团队效率

个人编写的代码规范

近期本人编写了一份以C/C++为主的代码规范。

其他语言开发者也可以阅读参考。

本文档可供中小团队二次修改后直接使用。

链接

https://github.com/cuber-lotus/CodeStandard

请求合作

想对于各种成熟的代码规范,本文档还有很多欠缺,有格式方面,有内容方面,有准确性方面。

因此希望与大家一起来完善本规范。

1539349804@qq.com

大体章节

最后放一个大体的章节目录

  • 代码规范

  • 前言

    • 目的

    • 宗旨

    • 使用说明

  • 包和文件

  • 用路径来管理不同模块

  • 头文件与源文件

  • 文件

  • 注释

    • /**/与//

    • 文件头注释

    • 类注释

    • 函数注释

    • 代码注释

    • TODO注释

    • 尾部注释

    • 细节技巧

    • 特殊情况

  • 缩进

    • 使用空格而不是tab

    • 注释与注释目标对齐

    • 类权限与class关键字对齐

    • 不缩进情况

    • 行长的限定

    • 换行

  • 语句块

    • for, while, if, switch, case, do, goto, try

    • if else

    • switch

    • goto

    • 逗号后加空格

    • 判断语句较长时运算符换行保持统一

    • 指针和引用左右选择一边留空格

    • 综合举例

  • 命名

    • 常用命名规范类型

    • 长度应该适中

    • 缩写

    • 文件

    • namespace

    • class & struct

    • 函数

    • 变量

    • enum

    • union

    • using和typedef

    • 注意

  • 运算符

    • 多元运算符要左右空格

    • 一元运算符要贴近变量成员访问符号要贴近变量

    • 减少使用自增++和自减–

    • 使用括号增加可读性

    • 比较运算符左侧尽量写常量

    • 用比较运算符代替非0即1

  • 函数

    • 函数功能应该明确

    • 使用引用,减少使用指针

    • 重载函数应该相邻编写

    • 指针参数应该检测合法性

    • lambda表达式

    • 继承顺序

    • 权限顺序

    • 内容顺序

    • 构造函数顺序

    • 运算符重载顺序

    • 使用explicit避免隐式类型转换

    • 自定义拷贝和移动语义

    • 使用override, delete, default, final

    • 特殊情况

  • 内存管理

    • 使用new/delete而非malloc/free

    • 合理使用智能指针

  • 其他

    • 异常

    • 类型转换

    • 明示类型长度

    • 初始化

  • 团队合作

    • 不要修改不是自己写的文件

    • 不要修改已经确定提供给外部的接口名

  • 后记




END

http://www.lryc.cn/news/32832.html

相关文章:

  • 春招冲刺(九):计算属性和监视属性总结
  • 数据挖掘(作业1)
  • 【UE4 RTS游戏】01-项目准备
  • 登录系统账号检测--课后程序(Python程序开发案例教程-黑马程序员编著-第3章-课后作业)
  • CentOS8基础篇12:使用RPM管理telnet-server软件包
  • IT女神文章记录之自己
  • Compose 动画 (四) : AnimatedVisibility 各种入场和出场动画效果
  • notepad++学习小技巧
  • Android supports-screens 屏幕适配
  • 操作系统基础知识介绍之Mixed CriticalitySystems——混合关键系统
  • 【数据结构初阶】详解链表OJ题
  • Java基本数据类型变量自动提升、强制类型转换、String基本类型使用
  • Redis锁与幂等性不得不说的故事
  • Spark 应用调优
  • synchronized 与 volatile 关键字
  • 【0成本搭建个人博客】——Hexo+Node.js+Gitee Pages
  • 【面试实战】认证授权流程及原理分析
  • TPM命令解析之tpm2_startauthsession
  • 第14章 局部波动率模型
  • 云原生周刊:开源“赢了”,但它可持续吗?
  • 读《企业IT架构转型之道》
  • Qt中的QTcpSocket、QWebSocket和QLocalSocket
  • 枚举学习贴
  • 【C++】30h速成C++从入门到精通(继承)
  • Java多线程还不会的进来吧,为你量身打造
  • 8 神经网络及Python实现
  • 使用QIS(Quantum Image Sensor)图像重建总结(1)
  • 【SpringCloud】SpringCloud教程之Nacos实战(二)
  • 利用Qemu工具仿真ARM64平台
  • 【Hello Linux】进程控制 (内含思维导图)