时间: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. LCM性质 + 组合数 - HDU 5407 CRB and Candies

    CRB and Candies Problem's Link Mean: 给定一个数n,求LCM(C(n,0),C(n,1),C(n,2)...C(n,n))的值,(n<=1e6). analy ...

  2. JDBC_part2_DML以及预编译_编写DBUtil工具类

    本文为博主辛苦总结,希望自己以后返回来看的时候理解更深刻,也希望可以起到帮助初学者的作用. 转载请注明 出自 : luogg的博客园 谢谢配合! jdbc day02 DML语法 比起插叙语句,没有R ...

  3. spider RPC过滤器

    spider支持在请求执行前或完成后进行特殊处理,比如安全性检查.敏感字段混淆等等.为此,spider提供了BeforeFilter和AfterFilter.其执行位置如下图所示: 流水线插件配置在s ...

  4. node-sass 在Mac中安装报错

    在做一个基于react项目要安装依赖的包时总是报一下错误 应该是node-sass的问题  找到官网下载跟我错误提示一样的文件也就是 darwin-x64-46 不同的系统不一样 修改为跟本地一样的名 ...

  5. Android将应用调试log信息保存在SD卡

    转载:http://blog.csdn.net/way_ping_li/article/details/8487866 把自己应用的调试信息写入到SD卡中. package com.sdmc.hote ...

  6. [swift]NSURLSession

    一.简单说明 在iOS9.0之后,以前使用的NSURLConnection过期,苹果推荐使用NSURLSession来替换NSURLConnection完成网路请求相关操作. NSURLSession ...

  7. Android笔记——Android自定义控件

    目录: 1.自定义控件概述 01_什么是自定义控件 Android系统中,继承Android系统自带的View或者ViewGroup控件或者系统自带的控件,并在这基础上增加或者重新组合成我们想要的效果 ...

  8. (八)map,filter,flatMap算子-Java&Python版Spark

    map,filter,flatMap算子 视频教程: 1.优酷 2.YouTube 1.map map是将源JavaRDD的一个一个元素的传入call方法,并经过算法后一个一个的返回从而生成一个新的J ...

  9. T-SQL 去除特定字段的前导0

    在工作过程中遇到一个需求,要从特定字段中删除前导零,这是一个简单的VARCHAR(10)字段. 例如,如果字段包含"00001A",则SELECT语句需要将数据返回为"1 ...

  10. Squirrel: 通用SQL、NoSQL客户端

    安装 配置数据库 配置驱动 配置连接 如果你的工作中,需要使用到多个数据库,又不想在多种客户端之间切换来切换去.那么就需要找一款支持多数据库的客户端工具了.如果你要连接多个关系型数据库,你就可以使用N ...