Google C++编程风格指南
来源:互联网 发布:网络教育学历有用吗 编辑:程序博客网 时间:2024/05/16 01:25
作者:Hawstein
作者:Hawstein
出处:http://hawstein.com/posts/google-cpp-style-guide.html
前言
越来越发现一致的编程风格的重要性,于是把Google的C++编程风格指南看了一遍,这里记录下于自己有益的rules。当规则有多个选择时,这里只记录个人习惯的用法,并不代表它是唯一的用法。
Google Style Guide
Google开源项目风格指南
命名约定
命名管理是最重要的一致性规则,因此我把它放在最前面。
- 尽可能给出描述性名称。
int num_errors; int num_completed_connections;
- 文件名全部小写,用下划线做连接符。
my_useful_class.cc
- C++文件以.cc 结尾,头文件以.h 结尾。(从.cpp切换到.cc)
my_useful_class.ccmy_useful_class.h
- 类型命名每个单词以大写字母开头,不包含下划线。类、结构体、类型定义(typedef)、枚举都使用相同约定。
// classes and structsclass UrlTable { ...class UrlTableTester { ...struct UrlTableProperties { ...// typedefstypedef hash_map<UrlTableProperties *, string> PropertiesMap;// enumsenum UrlTableErrors { ...
- 变量名一律小写,单词之间用下划线连接。类的成员变量以下划线结尾。
my_exciting_local_variablemy_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
出处:http://hawstein.com/posts/google-cpp-style-guide.html
0 0
- Google C++编程风格指南
- Google C++编程风格指南
- Google C++编程风格指南
- Google C++编程风格指南
- Google C++编程风格指南
- Google C++编程风格指南
- Google Java编程风格指南
- Google Java编程风格指南
- Google Java编程风格指南
- Google Java编程风格指南
- Google Java编程风格指南
- Google Java编程风格指南
- Google Java编程风格指南
- Google Java编程风格指南
- Google Java编程风格指南
- Google Java编程风格指南
- Google Java编程风格指南
- Google Java编程风格指南
- hdu 4283 You Are the One(区间DP)
- Codeforces B. Fox and Minimal path
- cocos2d-x3.0的HelloWorld
- ghost误操作,整个硬盘只剩一个C盘
- Linux下Pdf Studio的破解
- Google C++编程风格指南
- HDU1867-KMP算法的应用
- poj 2892 hdu1540 线段树 求过某点的最大连续区间。
- hdu1372 Knight Moves(BFS)
- Python_C3_变量【上】
- WebLogin 创建域
- html 弹出div移动居中(好用版)
- iframe的src赋值问题(服务器端)
- 数据库的并发操作