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

Google C++ Style Guide

C++ 编程规范是一套为了提升代码可读性、可维护性和可扩展性的指南,特别适合团队开发和大型项目。以下是通用且推荐遵循的 C++ 编程规范汇总,涵盖命名、结构、注释、风格等关键点:


🔷 一、命名规范

✅ 变量 / 成员变量:

  • 使用小写字母,单词间用下划线分隔(snake_case)

  • 类的私有成员变量一般加 _ 结尾(如 speed_

  • int max_speed;
    float current_speed_;
    

✅ 类名 / 结构体名:

  • 每个单词首字母大写(PascalCase)

class RobotController;
struct PositionData;

✅ 函数名:

  • 使用驼峰式命名(camelCase),首字母小写

void computeVelocity();
float getDistanceToGoal();

✅ 宏定义:

  • 全大写 + 下划线分隔

#define MAX_BUFFER_SIZE 1024

🔷 二、代码结构规范

✅ 类定义顺序推荐:

class Example {
public:// 构造函数 / 析构函数Example();~Example();// 公有方法void publicMethod();protected:// 受保护方法/变量private:// 私有方法/变量int internal_value_;
};

✅ 文件组织:

  • 一个类一个 .cpp + .h

  • .h 只包含声明,不写实现

  • #pragma once 用于头文件防重包含


🔷 三、注释风格

✅ 单行注释:

// 计算速度向量

✅ 多行注释:

/** 初始化机器人控制器* 参数:*   config_path: 配置文件路径*/

✅ 函数注释建议使用 Doxygen 风格(推荐):

/*** @brief 计算目标点距离* @param target_x 目标 X 坐标* @param target_y 目标 Y 坐标* @return 返回距离(单位:米)*/
float computeDistance(float target_x, float target_y);

🔷 四、代码风格

  • 缩进: 使用 4 个空格(不要用 Tab)

  • 大括号: 建议独占一行

    if (condition)
    {doSomething();
    }
    

  • 空格: 保持清晰

    int a = 5;
    for (int i = 0; i < n; ++i) { ... }
    


🔷 五、安全与性能建议

  • 使用 const 修饰不变变量或引用参数

  • 避免裸指针,推荐使用智能指针(std::unique_ptr, std::shared_ptr

  • 使用范围 for 循环优先

    for (const auto& item : container) { ... }
    
  • 避免魔法数字,使用 constexprconst 变量替代


🔷 六、C++11/14/17 推荐实践

  • auto 简化类型

  • nullptr 替代 NULL

  • 使用 enum class 替代传统 enum

  • 使用 override / final 明确虚函数行为

  • 使用 RAII 资源管理(如 std::lock_guard

相关文章:

  • Linux 文件传输:系统数据交互的动脉
  • 极狐GitLab 外部流水线验证功能解读
  • SpringAI+DeepSeek大模型应用开发——4 对话机器人
  • 多模态大模型的算力需求预测:从理论FLOPs到实际集群配置(搭建算力成本评估模型的方法论)
  • Linux,redis群集模式,主从复制,读写分离
  • 山东大学软件学院创新项目实训开发日志(15)之中医知识问答历史对话查看bug处理后端信息响应成功但前端未获取到
  • 在Pycharm配置stable diffusion环境(使用conda虚拟环境)
  • Python(19)Python并发编程:深入解析多线程与多进程的差异及锁机制实战
  • 1. 列表解决数列问题1
  • halcon模板匹配(七)adapt_shape_model_high_noise
  • 数据库-day06
  • FPGA阵列
  • AI写程序:用 AI 实现一个递归批量转化 GBK/GB2312 转 UTF-8 工具:轻松解决文本编码转换难题
  • Vue与React组件化设计对比
  • Rust + WebAssembly 生产部署指南
  • apollo 动态配置
  • Kubernetes》》K8S》》Pod的健康检查
  • 绿幕抠图直播软件-蓝松抠图插件--使用相机直播,灯光需要怎么打?
  • 多路由器通过三层交换机互相通讯(单臂路由+静态路由+默认路由版),通过三层交换机让pc端相互通讯
  • 如何分析服务器日志以追踪黑客攻击行为
  • 日月谭天丨这轮中美关税会谈让台湾社会看清了什么?
  • 人民日报评外卖平台被约谈:合法规范经营,公平有序竞争
  • 金正恩观摩朝鲜人民军各兵种战术综合训练
  • 中国-拉共体成员国重点领域合作共同行动计划(2025-2027)
  • 成都警方通报:8岁男孩落水父母下水施救,父亲遇难
  • 第四届长三角国际应急博览会开幕,超3000件前沿装备技术亮相