1、Google 开源项目风格指南
保持一致的编程风格很重要。Google C++ Style Guide 是一份不错的 C++ 编码指南,可以在短时间内快速掌握规范。不过规范毕竟是人定的,记得活学活用。
中文版
- ReadTheDocs 托管地址: 在线阅读最新版本
- GitHub 托管地址: zh-google-styleguide
- 离线文档下载地址: release
- Google C++ 风格指南
- Google Objective-C 风格指南
- Google Python 风格指南
- Google JavaScript 风格指南
- Google Shell 风格指南
- Google JSON 风格指南
- Google TypeScript 风格指南
英文版
Google 官方英文版:https://github.com/google/styleguide
- AngularJS Style Guide
- Common Lisp Style Guide
- C++ Style Guide
- C# Style Guide
- Go Style Guide
- HTML/CSS Style Guide
- JavaScript Style Guide
- Java Style Guide
- Objective-C Style Guide
- Python Style Guide
- R Style Guide
- Shell Style Guide
- Swift Style Guide
- TypeScript Style Guide
- Vim script Style Guide
2、C++ 风格指南
目录
- C++ 风格指南 - 内容目录
- 扉页
- 译者前言
- 背景
- 本指南的目标
- C++ 版本
- 1. 头文件
- 1.1. 自给自足的头文件
- 1.2. #define 防护符
- 1.3. 导入你的依赖
- 1.4. 前向声明
- 1.5. 内联函数
- 1.6. #include 的路径及顺序
- 译者 (YuleFox) 笔记
- 译者(acgtyrant)笔记
- 2. 作用域
- 2.1. 命名空间
- 2.2. 内部链接
- 2.3. 非成员函数、静态成员函数和全局函数
- 2.4. 局部变量
- 2.5. 静态和全局变量
- 2.6. thread_local 变量
- 译者 (YuleFox) 笔记
- 译者(acgtyrant)笔记
- 3. 类
- 3.1. 构造函数的职责
- 3.2. 隐式类型转换
- 3.3. 可拷贝类型和可移动类型
- 3.4. 结构体 VS. 类
- 3.6. 继承
- 3.7. 运算符重载
- 3.8. 存取控制
- 3.9. 声明顺序
- 译者 (YuleFox) 笔记
- 4. 函数
- 4.1. 输入和输出
- 4.2. 编写简短函数
- 4.3. 函数重载
- 4.4. 缺省参数
- 4.5. 函数返回类型后置语法
- 5. 来自 Google 的奇技
- 5.1. 所有权与智能指针
- 5.2. Cpplint
- 译者(acgtyrant)笔记
- 6. 其他 C++ 特性
- 6.1. 右值引用
- 6.2. 函数重载
- 6.3. 缺省参数
- 6.4. 变长数组和 alloca()
- 6.5. 友元
- 6.6. 异常
- 6.7. 运行时类型识别
- 6.8. 类型转换
- 6.9. 流
- 6.10. 前置自增和自减
- 6.11. const 用法
- 6.12. constexpr 用法
- 6.13. 整型
- 6.14. 64 位下的可移植性
- 6.15. 预处理宏
- 6.16. 0, nullptr 和 NULL
- 6.17. sizeof
- 6.18. auto
- 6.19. 列表初始化
- 6.20. Lambda 表达式
- 6.21. 模板编程
- 6.22. Boost 库
- 6.23. C++11
- 译者(acgtyrant)笔记
- 7. 命名约定
- 7.1. 通用命名规则
- 7.2. 文件命名
- 7.3. 类型命名
- 7.4. 变量命名
- 普通变量命名
- 类数据成员
- 结构体变量
- 7.5. 常量命名
- 7.6. 函数命名
- 7.7. 命名空间命名
- 7.8. 枚举命名
- 7.9. 宏命名
- 7.10. 命名规则的特例
- 译者(acgtyrant)笔记
- 8. 注释
- 8.1. 注释风格
- 8.2. 文件注释
- 法律公告和作者信息
- 文件内容
- 8.3. 类注释
- 8.4. 函数注释
- 函数声明
- 函数定义
- 8.5. 变量注释
- 类数据成员
- 全局变量
- 8.6. 实现注释
- 代码前注释
- 行注释
- 函数参数注释
- 不允许的行为
- 8.7. 标点, 拼写和语法
- 8.8. TODO 注释
- 8.9. 弃用注释
- 译者 (YuleFox) 笔记
- 9. 格式
- 9.1. 行长度
- 9.2. 非 ASCII 字符
- 9.3. 空格还是制表位
- 9.4. 函数声明与定义
- 9.5. Lambda 表达式
- 9.6. 函数调用
- 9.7. 列表初始化格式
- 9.8. 条件语句
- 9.9. 循环和开关选择语句
- 9.10. 指针和引用表达式
- 9.11. 布尔表达式
- 9.12. 函数返回值
- 9.13. 变量及数组初始化
- 9.14. 预处理指令
- 9.15. 类格式
- 9.16. 构造函数初始值列表
- 9.17. 命名空间格式化
- 9.18. 水平留白
- 通用
- 循环和条件语句
- 操作符
- 模板和转换
- 9.19. 垂直留白
- 译者 (YuleFox) 笔记
- 译者(acgtyrant)笔记
- 10. 规则特例
- 10.1. 现有不合规范的代码
- 10.2. Windows 代码
- 11. 结束语
注:原图较大,在新标签页中打开或保存到本地打开更清晰
3、命名 规范
目前业界共有四种命名法则:驼峰命名法、匈牙利命名法、帕斯卡命名法 和 下划线命名法,其中前三种是较为流行的命名法。
匈牙利命名
开头字母用变量类型的缩写,
其余部分用变量的英文或英文的缩写,
且每个单词的第一个字母都大写。
示例:
int iMyAge; // i 是 int 类型的缩写。 char cMyName[10]; // c 是 char 类型的缩写。 float fManHeight; // f 是 float 类型的缩写。
匈牙利命名广泛应用于象 Microsoft Windows 这样的环境中, Windows 编程中用到的变量(还包括宏)的命名规则都是匈牙利命名法,这种命名技术是由一位能干的 Microsoft 程序员查尔斯- 西蒙尼(Charles Simonyi) 提出的
匈牙利命名法 通过在变量名前面加上相应的小写字母的符号标识作为前缀,标识出变量的作用域,类型等这些符号可以多个同时使用,顺序是先 m_(成员变量), 再指针,再简单数据类型,再其它 。
例如:m_lpszStr, 表示指向一个以0字符结尾的字符串的长指针成员变量
匈牙利命名法关键是:标识符的名字以一个或者多个小写字母开头作为前缀;前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量的用途
匈牙利命名法中常用的小写字母的前缀:属性 + 类型 + 描述。属性一般是 小写字母 + _ :
g_ : 全局变量
m_ : 类成员变量
s_ : 静态变量
c_ : 常量
类 型 前 缀 | 类 型 |
a | 数组 (Array) |
b | 布尔值 (Boolean) |
by | 字节 (Byte) |
c | 有符号字符 (Char),用 c 开头 cCount |
cb | 无符号字符 (Char Byte,没有多少人用) |
cr | 颜色参考值 (ColorRef) |
d | double 用d开头 dDeta |
f | float 用f开头 fAvg |
cx,cy | 坐标差(长度 ShortInt) |
w | Word,unsigned int(WORD) 用w开头 wCount |
dw | Double Word,unsigned long int(DWORD) 用dw开头 dwBroad |
fn | 函数 |
h | Handle(句柄) |
i | 整型 int ,用 i 开头 iCount |
n | short int 短整型 用 n 开头 nStepCount |
l | Long Int 长整型 用 l 开头 lSum |
lp | Long Pointer |
m_ | 类的成员 |
np | Near Pointer |
p | Pointer |
s | 字符串类型,用s开头 sFileName |
sz | 以null做结尾的字符串型 (String with Zero End), 用\0结尾的字符串 用sz开头 szFileName |
驼峰 命名法
小驼峰 命名
小驼峰法(camel方法):
- 第1个单词 以小写字母开始;
- 第2个单词首字母大写,或从第二个单词开始,后面的每一个单词的首字母都用大写
- 即 小驼峰式命名法: 第一个单词首字母小写,后面其他单词首字母大写。
变量 一般用 小驼峰法标识。
示例:
int myAge;
char myName[10];
float manHeight;
大驼峰式 命名
大驼峰式命名 又叫 帕斯卡命名法。所有单词的首字母都大写:FirstName, CamelCase
pascal 命名,常用于 类名,函数名,属性,命名空间。
大驼峰法(Upper Camel Case) 示例:
int MyAge;
char MyName[10];
float ManHeight ;
public class DataBaseUser
下面是分别用 骆驼式命名法 和 下划线法命名 的同一个函数:
下划线 命名
下划线法是随着 C语言 的出现流行起来的,在 UNIX/LIUNX 这样的环境,以及 GNU 代码中使用非常普遍
命名规则 小结
MyData 就是一个帕斯卡命名的示例 。
而 myData 是一个骆驼命名法,它第一个单词的第一个字母小写,后面的单词首字母大写,看起来像一个骆驼 。
而 iMyData 是一个匈牙利命名法,它的小写的i说明了它的型态,后面的和帕斯卡命名相同,指示了该变量的用途。
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/pythonbc/1170.html