Google C++编程风格指南
作者:Hawstein
出处:http://hawstein.com/posts/google-cpp-style-guide.html
前言
越来越发现一致的编程风格的重要性,于是把Google的C++编程风格指南看了一遍,这里记录下于自己有益的rules。当规则有多个选择时,这里只记录个人习惯的用法,并不代表它是唯一的用法。
命名约定
命名管理是最重要的一致性规则,因此我把它放在最前面。
- 尽可能给出描述性名称。
int num_errors;
int num_completed_connections;
- 文件名全部小写,用下划线做连接符。
my_useful_class.cc
- C++文件以.cc 结尾,头文件以.h 结尾。(从.cpp切换到.cc)
my_useful_class.cc
my_useful_class.h
- 类型命名每个单词以大写字母开头,不包含下划线。类、结构体、类型定义(typedef)、枚举都使用相同约定。
// classes and structs
class UrlTable { ...
class UrlTableTester { ...
struct UrlTableProperties { ... // typedefs
typedef hash_map<UrlTableProperties *, string> PropertiesMap; // enums
enum UrlTableErrors { ...
- 变量名一律小写,单词之间用下划线连接。类的成员变量以下划线结尾。
my_exciting_local_variable
my_exciting_member_variable_
- 结构体的数据成员可以和普通变量一样,不用像类那样接下划线。
struct UrlTableProperties {
string name;
int num_entries;
}
- 少用全局变量,要用的话用g作为其前缀(不喜欢用g_)。
bool gInvalid = false;
- 常量命名在名称前加k。
const int kDaysInAWeek = 7;
- 函数名的每个单词首字母大写,没有下划线。
AddTableEntry()
DeleteUrl()
- 取值和设值函数要与存取的变量名匹配,使用小写单词及下划线。
class MyClass {
public:
...
int num_entries() const { return num_entries_; }
void set_num_entries(int num_entries) { num_entries_ = num_entries; } private:
int num_entries_;
};
- 非常短小的内联函数也可以用小写字母命名。
void swap(int &a, int &b);
int max(int a, int b);
bool cmp(Type t1, Type t2);
- 名字空间用小写字母命名,并基于项目名称和目录结构:
namespace google_awesome_project {
...
}
- 枚举值应该优先采用常量的命名方式。
enum UrlTableErrors {
kOK = 0,
kErrorOutOfMemory,
kErrorMalformedInput,
};
- 尽量避免使用宏,如果不得不用,请使用大写字母及下划线。
#define ROUND(x) ...
#define PI_ROUNDED 3.0
作者:Hawstein
出处:http://hawstein.com/posts/google-cpp-style-guide.html
Google C++编程风格指南的更多相关文章
- Java学习笔记(四)——google java编程风格指南(上)
[前面的话] 年后开始正式上班,计划着想做很多事情,但是总会有这样那样的打扰,不知道是自己要求太高还是自我的奋斗意识不够?接下来好好加油.好好学学技术,好好学习英语,好好学习做点自己喜欢的事情,趁着自 ...
- Java学习笔记(五)——google java编程风格指南(中)
[前面的话] 年后开始正式上班,计划着想做很多事情,但是总会有这样那样的打扰,不知道是自己要求太高还是自我的奋斗意识不够?接下来好好加油.好好学学技术,好好学习英语,好好学习做点自己喜欢的事情,趁着自 ...
- Java学习笔记(六)——google java编程风格指南(下)
[前面的话] 年后开始正式上班,计划着想做很多事情,但是总会有这样那样的打扰,不知道是自己要求太高还是自我的奋斗意识不够?接下来好好加油.好好学学技术,好好学习英语,好好学习做点自己喜欢的事情,趁着自 ...
- 读书笔记 |Google C++编程风格指南
Google C++编程风格指南 ## 0. 背景 每一个C++程序员都知道,C++具有很多强大的语言特性,但这种强大不可避免的导致它的复杂,这种复杂会使得代码更易于出现bug.难于阅读和维护. 本指 ...
- google C++编程风格指南之头文件的包括顺序
google C++编程风格对头文件的包括顺序作出例如以下指示: (1)为了加强可读性和避免隐含依赖,应使用以下的顺序:C标准库.C++标准库.其他库的头文件.你自己project的头文件.只是这里最 ...
- Google C++编程风格指南 - 中文版
Google C++编程风格指南 - 中文版 from http://code.google.com/p/google-styleguide/ 版本: 3.133原作者: Benjy Weinberg ...
- Google Java编程风格指南
出处:http://hawstein.com/posts/google-java-style.html 声明:本文采用以下协议进行授权: 自由转载-非商用-非衍生-保持署名|Creative Comm ...
- Google Java编程风格指南中文版
作者:Hawstein出处:http://hawstein.com/posts/google-java-style.html声明:本文采用以下协议进行授权: 自由转载-非商用-非衍生-保持署名|Cre ...
- Google Java 编程风格指南 —— 见微知著
目录 前言 源文件基础 源文件结构 格式 命名约定 编程实践 Javadoc 后记 前言 这份文档是Google Java编程风格规范的完整定义.当且仅当一个Java源文件符合此文档中的规则, 我们才 ...
随机推荐
- Nyoj42 一笔画问题 (欧拉道路)
http://acm.nyist.net/JudgeOnline/problem.php?pid=42题目链接 #include <cstdio> #include <cstring ...
- 关于Redis的常识(推荐)
原文出处: https://github.com/springside/springside4/wiki/redis 版本:V3.0.3 2013-8-1 (@江南白衣版权所有,转载请保留出处) 1. ...
- 问题.NETSystem.Data.OleDb.OleDbException 操作必须使用一个可更新的查询
问题:System.Data.OleDb.OleDbException 操作必须使用一个可更新的查询 问题现象:用asp.net连access数据库,查询可以,插入数据报错.在.NET中F5可以使用方 ...
- 再看GOPATH
原本不打算介绍GOPATH,然而,总是有初学者问一些关于GOPATH的问题,因此在这里再介绍一下GOPATH GOPATH环境变量用于指定这样一些目录:除$GOROOT之外的包含Go项目源代码和二进制 ...
- usb 设备的端点 及输入输出方向
- fedora21安装xmind7
老版本的xmind安装方法,在最后的阶段无法成功注册到系统中,desktop无法自定义完成.参考:http://www.cnblogs.com/cupcoffee/p/3560626.html 直到从 ...
- 关于python文件转为exe文件
一.简介 py2exe是一个将python脚本转换成windows上的可独立执行的可执行程序(*.exe)的工具,这样,你就可以不用装python而在windows系统上运行这个可执行程序. py2e ...
- javascript默认中文(汉字/标点)长度均为1的解决
javascript默认中文(汉字/标点)长度均为1 与后台(java)不一致, function calculate(str) { //var str="你好,哈哈哈000111lll&q ...
- Debugging to Understand Finalizer--reference
This post is covering one of the Java built-in concepts called Finalizer. This concept is actually b ...
- locale 详解
locale 是国际化与本土化过程中的一个非常重要的概念,个人认为,对于中文用户来说,通常会涉及到的国际化或者本土化,大致包含三个方面: 看中文,写中文,与 window中文系统的兼容和通信.从实际经 ...