时间:2014.03.02

地点:基地

----------------------------------------------------------------------------------------

一、简述

Google 的C++规范号称世界上最优秀的编码规范,于是拿来研究下,已改善自己以后的工作,今天只先学习下它的命名规范。

----------------------------------------------------------------------------------------

二、命名规则

1.文件命名规则

文件名全部小写,可以含下划线或连字符,按项目约定命名,且尽量保证文件名明确。比如:

cmd_save_player_info_class.cc                  my_use_full_class.cc

定义类的文件名一般是成对出现,如:foo_bar.h   foo_bar.cc

若是类中含大量内联函数,我们还可使用-ini.h文件,使之文件内容更加清晰,于是又如:

url_table.h     url_table.cc  url-table-ini.h

2.类命名规则

类型命名每个单词首字母大写,不含下划线,以名词形式。比如: MyPalyerManager,这对于所有类型命名一样,类结构体,枚举,类定义都是如此,比如:MyExcitingEnum

3.变量命名规则

变量名一律小写,单词用下划线相连,例如:

int player_id;                      string table_name;

特殊的是类成员变量,后跟下划线区别普通变量,比如: player_name_         player_id_

全局变量则以  g_  开头,比如 :   g_system_time

当然结构体成员变量还是和普通变量一样,比如:string name;   int num_entries;

4.常量命名规则

k后面跟大写字母开头的单词,比如:

const int kDaysInAWeek=7;

const string kCompanyName="Tecent";

5.函数命名规则

常规函数每个单词首字母大写,使用命令式语气,比如:OpenFile()   CheckFileName(),

而存取函数或短小的内联函数使用小写加下划线,且与访问变量相吻合,比如 set_num_errors();

  1. class Player{
  2. public:
  3. void set_player_id(const int player_id){return player_id_=player_id;}
  4. int get_player_id() const{return player-id_;}
  5. private:
  6. int palyer_id_;
  7. };

6.名字空间命名

命名空间全小写,并基于项目名称和目录结构,比如

google_awesome_project

7.枚举命名规则

枚举类名属于类型名,按类命名,枚举值全大写加下划线,比如:ENUM_NAME

8.宏变量命名规则

如果你一定要用到宏,全大写加下划线,比如:

#define PI_ROUND 3.0

----------------------------------------------------------------------------------------

三、总结

总的来说,函数名、变量名、文件名都应该具有描述性,不要随意缩写,类型变量名保持名词性描述,函数名称保持命令性语气,宏、枚举值全大写加下划线,变量、文件、命名空间、存取函数全小写加下划线,其中类成员变量还要以下划线结尾,全局变量g_开头

原文转自 http://blog.csdn.net/u012333003/article/details/20282277

原作者为 云梦泽1989. 请尊重原作者版权

Google C++命名规范的更多相关文章

  1. Google Python命名规范

    Google Python命名规范 module_name,  模块 package_name,  包 ClassName,  类 method_name,  方法 ExceptionName,    ...

  2. Google Python 命名规范

    Google Python命名规范 module_name,  模块 package_name,  包 ClassName,  类 method_name,  方法 ExceptionName,    ...

  3. python—命名规范(转)

    文件名全小写,可使用下划线 包应该是简短的.小写的名字.如果下划线可以改善可读性可以加入.如mypackage. 模块与包的规范同.如mymodule. 类总是使用首字母大写单词串.如MyClass. ...

  4. python 中变量的命名规范

    出自:http://www.diybl.com/course/3_program/python/20111130/563643.html 模块名: 小写字母,单词之间用_分割 ad_stats.py ...

  5. Python变量命名规范

    模块名: 小写字母,单词之间用_分割 ad_stats.py 包名: 和模块名一样 类名: 单词首字母大写 AdStats ConfigUtil 全局变量名(类变量,在java中相当于static变量 ...

  6. python—命名规范

    文件名全小写,可使用下划线 包应该是简短的.小写的名字.如果下划线可以改善可读性可以加入.如mypackage. 模块与包的规范同.如mymodule. 类总是使用首字母大写单词串.如MyClass. ...

  7. java~google样式检查和命名规范

    对于代码的样式和各种元素的命名都是我们架构师需要考虑的,目前在java世界里,比较流行使用java的规范,包括了代码样式检查. 代码样式检查插件 样式文件xml google命名规范 一 代码样式检查 ...

  8. Java命名规范

    驼峰法则: 将所有字母都小写(包括缩写),然后将单词的第一个字母大写. 每个单词的第一个字母都大写,来得到大驼峰式命名. 除了第一个单词,每个单词的第一个字母都大写,来得到(小)驼峰式命名. 为避免歧 ...

  9. android命名规范

    Android 开发规范 (陈杨) (一)注意事项 1. 编码方式统一用UTF-8. Android Studio默认已是UTF-8,只要不去改动它就可以了. 2. 缩进统一为4个空格,将Tab si ...

随机推荐

  1. VR/AR 非技术总结

    VR/AR 非技术总结 **欢迎转载~转载请注明Erma的博客 http://www.cnblogs.com/Erma-king/** 都说2016是VR/AR的元年,上半年我随着新技术的潮流进入了V ...

  2. Rafy 框架 - 使用 SqlTree 查询

    本文介绍如何使用 Rafy 框架中的 Sql Tree 查询: 除了开发者常用的 Linq 查询,Rafy 框架还提供了 Sql 语法树的方式来进行查询. 这种查询方式下,开发者不需要直接编写真正的 ...

  3. 在基于MVC的Web项目中使用Web API和直接连接两种方式混合式接入

    在我之前介绍的混合式开发框架中,其界面是基于Winform的实现方式,后台使用Web API.WCF服务以及直接连接数据库的几种方式混合式接入,在Web项目中我们也可以采用这种方式实现混合式的接入方式 ...

  4. ASP.Net MVC——DotNetZip简单使用,解决文件压缩问题。

    准备工作: 在vs工具栏中找到NuGet 下载DotNetZip 现在就可以使用DotNetZip强大的类库了,在这里我给出一些简单的使用. public ActionResult Export() ...

  5. FreeMarker的基础语法

    FreeMarker语言 FreeMarker语言概述 FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写. FreeMarker被设计用来生成HTML Web ...

  6. Waud.js – 使用HTML5降级处理的Web音频库

    Waud.js 是一个Web音频库,有一个HTML5音频降级处理方案. 它允许您利用Web音频API为你的Web应用程序控制音频功能.在不支持Web音频API的非现代浏览器使用HTML5音频降级方案. ...

  7. 如何为eclipse安装合适版本的python插件pydev

    pydev是一款优秀的Eclipse插件,大多数喜欢在eclipse开发软件的程序员(也许是java程序员)在开发python软件时希望继续使用eclipse,那么pydev是非常理想的选择. 1.安 ...

  8. View and Data API Tips: Constrain Viewer Within a div Container

    By Daniel Du When working with View and Data API, you probably want to contain viewer into a <div ...

  9. 使用IdleTest进行TDD单元测试驱动开发演练(3) 之 ASP.NET MVC

    一.[前言] (1)本文将用到IOC框架Unity,可参照<Unity V3 初步使用 —— 为我的.NET项目从简单三层架构转到IOC做准备>(2)本文的解决方案是基于前述<使用I ...

  10. 【容器云】传统金融企业的 Docker 实践

    基于 Docker 的容器云-Padis 目前市面上基于容器云的产品有很多,对于平安而言,则是基于 Docker 的 Padis 平台.所谓 Padis,全称是 PingAn Distribution ...