提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、文件命名
  • 二、类型命名
  • 三、变量命名
  • 四、常量命名
  • 五、函数命名
  • 六、命名空间命名
  • 七、枚举命名
  • 八、宏命名
  • 九、驼峰变量名、帕斯卡变量名

前言

命名具有描述性,减少缩写使用,可使用通用缩写。


一、文件命名

全部小写,使用下划线’_'。
示例:

my_useful_class.cc

二、类型命名

单词首字母均大写,不包含下划线。
适用于类,结构体,类型定义(typedef),枚举,类型模板参数。
示例:

// 类和结构体
class UrlTable { ...
class UrlTableTester { ...
struct UrlTableProperties { ...
// 类型定义
typedef hash_map<UrlTableProperties *, string> PropertiesMap;
// using 别名
using PropertiesMap = hash_map<UrlTableProperties *, string>;
// 枚举
enum UrlTableErrors { ...

三、变量命名

变量(函数参数)和数据成员名均小写,单词之间用下划线连接。
类的成员变量以下划线结尾,结构体不用。
示例:

string table_name; // 好 - 用下划线.
string tablename; // 好 - 全小写.
// 类数据成员
class TableInfo {...
private:string table_name_; // 好 - 后加下划线.string tablename_; // 好.static Pool<TableInfo>* pool_; // 好.
};
// 结构体变量
struct UrlTableProperties {string name;int num_entries;static Pool<UrlTableProperties>* pool;
};

四、常量命名

声明为 constexpr 或 const 的变量, 或在程序运行期间其值始终保持不变的, 命名时以“k”开头, 大小写混合。
示例:

const int kDaysInAWeek = 7;

五、函数命名

常规函数使用大小写混合, 取值和设值函数则要求与变量名匹配:
示例:

MyExcitingFunction()
MyExcitingMethod()
my_exciting_member_variable()
set_my_exciting_member_variable()

六、命名空间命名

命名空间以小写字母命名,最高级命名空间的名字取决于项目名称。要注意避免嵌套命名空间的名字之间和常见的顶级命名空间的名字之间发生冲突。
不使用缩写作为名称!
(暂未涉及命名空间的使用)

七、枚举命名

枚举的命名应当和常量或宏一致: kEnumName 或是 ENUM_NAME。
优先选用常量风格的命名方式
示例:

enum UrlTableErrors {kOK = 0,kErrorOutOfMemory,kErrorMalformedInput,
};
enum AlternateUrlTableErrors {OK = 0,OUT_OF_MEMORY = 1,MALFORMED_INPUT = 2,
};

八、宏命名

全部大写,使用下划线。
示例:

#define ROUND(x) ...
#define PI_ROUNDED 3.0

九、驼峰变量名、帕斯卡变量名

驼峰命名:首单词字母小写,后续单词首字母大写,不使用下划线。
帕斯卡命名:所有单词首字母大写,不使用下划线。
示例:

// 驼峰
int myNum;
// 帕斯卡
int MyNum;

C++命名规则记录(参考谷歌编码规范)相关推荐

  1. 读谷歌编码规范所想到的

    这几天看了很多文章,其中有一篇<为什么谷歌要执行严格的代码编写规范>让我深有感触. 不得不承认,以前一直认为编码规范没什么用处,甚至有时候觉得浪费开发人员的工作时间. 在同另一个公司合作共 ...

  2. 枚举命名规范_UE4 C++基础教程 - 编码规范

    为什么要学习编码规范? 良好的编码规范不仅利于项目维护,也增加了代码辨识度.使我们在阅读代码时能够更加清晰的理解代码意图.维护编码规范不是一件机械化的工作,它更像是一门艺术,让我们在有限的规范内发挥自 ...

  3. 网页制作中规范使用DIV+CSS命名规则(转)

    网页制作中规范使用DIV+CSS命名规则,可以改善优化功效特别是团队合作时候可以提供合作制作效率,具体DIV CSS命名规则内容如下: 页头:header  如:#header{属性:属性值;}或.h ...

  4. 阿里巴巴编码规范解读(五)-MySQL数据库

    MySQL数据库 第五部分 MySQL数据库 建表规约 1.[强制] 2.[强制] 3.[强制] 4.[强制] 5.[强制] 6.[强制] 7.[强制] 8.[强制] 9.[强制] 10.[推荐] 1 ...

  5. Vue.js 组件编码规范

    目标 本规范提供了一种统一的编码规范来编写 Vue.js 代码.这使得代码具有如下的特性: 其它开发者或是团队成员更容易阅读和理解. IDEs 更容易理解代码,从而提供高亮.格式化等辅助功能 更容易使 ...

  6. Android编码规范_优码客软件

              Android编码规范 日期 作者 备注 2013年7月30日星期二 王明东 初稿 前  言 编写本规范的目的是为了进一步规范Android软件编程风格,提高软件源程序的可读性.可 ...

  7. 《C++ 开发从入门到精通》——2.3 必须遵循的编码规范

    本节书摘来自异步社区出版社<C++ 开发从入门到精通>一书中的第2章,第2.3节,作者: 王石磊 , 韩海玲,更多章节内容可以访问云栖社区"异步社区"公众号查看. 2. ...

  8. java包名命名规则_告别编码5分钟,命名2小时!史上最全的Java命名规范参考!

    简洁清爽的代码风格应该是大多数工程师所期待的.在工作中笔者常常因为起名字而纠结,命名已经成为我工作中的拦路虎,夸张点可以说是编程5分钟,命名两小时! 每个公司都有不同的标准,目的是为了保持统一,减少沟 ...

  9. mysql schema命名规范_数据库设计 命名及编码规范

    http://blog.csdn.net/seusoftware/archive/2010/04/24/5524414.aspx 引用 一.综述 命名和编码过程中,定义有意义的名称,以易于理解.方便书 ...

  10. 【考试记录】Apsara Clouder基础技能认证:阿里巴巴编码规范(Java)

    一:考试总结 我是考了一次就过了,看了一晚上和一上午,开发手册看了一遍,考题分析看了两遍,次要资料里的东西看了一遍.(文章最后有资料) 先看主要资料里的Java开发手册,这个是官方文档,考题都是从里面 ...

最新文章

  1. solr 下载 有dist目录的(6需要8)
  2. SVN中trunk、branch、tag区别
  3. TreeView获取目录下的所有文件
  4. 常用的 Web Service 服务汇总(天气预报,列车时刻表)
  5. 微软服务器收费吗,了解 Azure 外部服务收费
  6. 三年经验前端社招——丰巢科技
  7. ms查约束具体代码_ECCV 2020附代码论文合集(CNN,图像分割)
  8. 大学 C语言程序设计第一讲,c语言程序设计1第一讲(第一章上).ppt
  9. poj 2192 Zipper
  10. Arcgis字段计算器实现自动顺序编号
  11. Lab4: traps
  12. 小程序加入人脸识别_微信小程序实现人脸识别
  13. 在光标位置处插入图片
  14. 百度地图android去除logo,百度地图 Android版 隐藏logo
  15. 计算机表格斜线怎么打字上去,excel表格斜杠怎么分割打字,表格画线怎么画斜线...
  16. VUE子路由跳转,各位大神,为啥我这个子路由跳转不到相应的子页面,求助求助
  17. dw设置html背景,Dreamweaver默认浏览器怎么设置
  18. 8m照片宽和高是多少_1920*1080的图片高和宽是多少厘米呀
  19. android socket通讯
  20. android表情编码与解码

热门文章

  1. CCVR基于分类器校准缓解异构联邦学习
  2. Knife4j,一个好用的自动生成接口文档工具
  3. 【微服务 Spring Cloud 2】为什么90%的开发者放弃传统的技术架构,而选择微服务?
  4. vue使用vue-print-nb实现表格打印功能
  5. 《不颠覆,就会被淘汰》读书笔记
  6. mysql select自定义连接符_MySQL学习笔记(四)运算符和函数
  7. 前端性能优化之静态资源优化
  8. 揭秘通信协议设计的奥妙,作为面试官我都看蒙了
  9. 5000元高端投影仪双十一怎么选?极米H6 4K高亮定焦版成为首选
  10. 备战秋招,17年春招面经整理合集(170篇)