C++变量命名规则

参考:Google C++编码规范
参考:http://blog.sina.com.cn/s/blog_8a7012cf01017h9p.html

最重要的一致性规则是命名管理,命名风格直接可以直接确定命名实体是:类型、变量、函数、常量、宏等等,无需查找实体声明,我们大脑中的模式匹配引擎依赖于这些命名规则。 命名规则具有一定随意性,但相比按个人喜好命名,一致性更重要,所以不管你怎么想,规则总归是规则。

函数命名、变量命名、文件命名应具有描述性,不要过度缩写,类型和变量应该是名词,函数名可以用“命令性”动词。

如何命名: 尽可能给出描述性名称,不要节约空间,让别人很快理解你的代码更重要,好的命名选择:
int num_errors; // Good.
int num_completed_connections; // Good.

丑陋的命名使用模糊的缩写或随意的字符:
int n; // Bad - meaningless.
int nerr; // Bad - ambiguous abbreviation.
int n_comp_conns; // Bad - ambiguous abbreviation.

类型和变量名一般为名词:如
FileOpener、num_errors。

函数名通常是指令性的,如
OpenFile()、set_num_errors(),
访问函数需要描述的更细致,要与其访问的变量相吻合。

缩写: 除非放到项目外也非常明了,否则不要使用缩写,例如:
// Good
// These show proper names with no abbreviations.
int num_dns_connections; // Most people know what “DNS” stands for.
int price_count_reader; // OK, price count. Makes sense.

// Bad!
// Abbreviations can be confusing or ambiguous outside a small group.
int wgc_connections; // Only your group knows what this stands for.
int pc_reader; // Lots of things can be abbreviated “pc”.

不要用省略字母的缩写:
int error_count; // Good.
int error_cnt; // Bad

序号名称命名举例解释
1文件名my_useful_class.cpp全小写,带下划线
2命名空间google_awesome_project全小写,带下划线,目录命名
3变量名chbuf类型前缀开头,全小写,带下划线
4成员变量m_bokm_开头,后同变量
5全局变量g_strbufg_开头,后同变量
6类名MyExcitingClass大写开头,无下划线,单词首字母大写
7常量名kDaysInAWeekk开头,后同类名
8函数名AddTableEntry()动词开头,后同类名
9枚举emWeekem开头,后同类名;变量全大写

1、文件命名(File Names)
文件名要全部小写,可以包含下划线(_)或短线(-),按项目约定来。

可接受的文件命名:
my_useful_class.cc
my-useful-class.cc
myusefulclass.cc

2、类型命名(Type Names)
类型命名每个单词以大写字母开头,不包含下划线:
MyExcitingClass、MyExcitingEnum。
所有类型命名——类、结构体、类型定义(typedef)、枚举——使用相同约定,例如:

// classes and structs
class UrlTable { …
class UrlTableTester { …
struct UrlTableProperties { …

// enums
enum UrlTableErrors { …

3、变量命名(Variable Names)
变量名一律小写,单词间以下划线相连,类的成员变量以下划线结尾

4、常量命名(Constant Names)
在名称前加k:kDaysInAWeek。 所有编译时常量(无论是局部的、全局的还是类中的)和其他变量保持些许区别,k后接大写字母开头的单词: const int kDaysInAWeek = 7;

5、 函数命名(Function Names)
普通函数(regular functions,译者注,这里与访问函数等特殊函数相对)大小写混合,存取函数(accessors and mutators)则要求与变量名匹配:MyExcitingFunction()、MyExcitingMethod()、my_exciting_member_variable()、set_my_exciting_member_variable()。
普通函数: 函数名以大写字母开头,每个单词首字母大写,没有下划线: AddTableEntry() DeleteUrl()

6、命名空间(Namespace Names)
命名空间的名称是全小写的,其命名基于项目名称和目录结构:
google_awesome_project。

7、枚举命名(Enumerator Names)
枚举值应全部大写,单词间以下划线相连:MY_EXCITING_ENUM_VALUE。
枚举名称属于类型,因此大小写混合:UrlTableErrors。
enum UrlTableErrors {
OK = 0, ERROR_OUT_OF_MEMORY, ERROR_MALFORMED_INPUT,
};

类型举例解释
1、 整型前缀
int nId;//int前缀 n
short sId;//short前缀:s
unsigned int unId// unsigned int 前缀:un
long lId;//long前缀:l
2、 浮点型前缀
float fValue;//float前缀:f
double dValue;//double前缀:d
3、 字符型前缀
char chChar;//char前缀:ch
4、 字符串前缀
char szPath;//char字符串前缀:sz
string strPath;//string字符串前缀:str
CString strPath;//MFC CString类前缀:str
5、 布尔型前缀
bool bIsOK;//bool类型前缀:b
6、 指针型前缀
char * pPath;//指针前缀:p
7、 数组前缀
int arrnNum;//数组前缀:arr
String arrstrName;//数组前缀+类型前缀+名称
8、 结构体前缀
STUDENT tXiaoZhang;//结构体前缀:t
9、 枚举前缀
enum emWeek;//枚举前缀:em
10、 STL容器前缀
vector vecValue;//vector容器前缀:vec
  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值