您当前的位置:首页 > 电脑百科 > 程序开发 > 语言 > C/C++/C#

C++编程规范-命名规范

时间:2019-10-08 15:33:16  来源:  作者:

参考中文版谷歌开源项目风格指南,但是并不与其完全相同,整理出来便于规范自己的编码风格。

一、命名规范

1、文件命名

  • 文件名全部小写,如果项目没有命名约定则用下划线"_"分隔开
  • c++文件以.cc结尾,头文件以.h结尾,专门插入文本的文件以.inc结尾
  • 定义类时文件名成对出现
  • 内联函数强制放在.h文件中
  • 不要使用与/usr/include(编译器搜索系统头文件的目录)下相同的文件名

2、类型命名

类型包括:类、结构体、类型命名(typedef)、枚举、模板参数 --- 均使用相同命名规定: 以大写字母开始,每个单词首字母均大写,不包含下划线

例如:

// 类和结构体
class UrlTable { ...
class UrlTableTester { ...
struct UrlTableProperties { ...
// 类型定义
typedef hash_map<UrlTableProperties *, string> PropertiesMap;
// using 别名
using PropertiesMap = hash_map<UrlTableProperties *, string>;
// 枚举
enum UrlTableErrors { ...

3、变量命名

  • 变量(普通变量、函数参数)和数据成员全部用小写字母
  • 单词之间用下划线连接
  • 变量和结构体的数据成员最后不用连接下划线,但是类的数据成员最后要连接下划线

例如:

string table_name; 
class TableInfo {
...
private:
 string table_name_; 
 static Pool<TableInfo>* pool_; 
};
struct UrlTableProperties {
 string name;
 int num_entries;
 static Pool<UrlTableProperties>* pool;
};

4、常量命名

常量命名和谷歌的编程规范的常量命名的规则不尽相同。命名规则如下:

  • 所有的常量前面加上con(google建议前面加上k)
  • 其后的每个单词采用驼峰命名规则

例如:

const int conDaysInWeek = 7;

5、函数命名

这里的函数分为两种:普通的函数、取值或者设值的函数

  • 普通的函数使用驼峰命名规则,所有的首字母均大写,对于缩写的符号比如RPC,也应该将其视为一个单词首字母大写
  • 取值或者设值的函数应该与对应的变量相配合,可以使用下划线连接单词或者驼峰命名的规则

例如:

void OpenFile(string file_name);
//对应于成员int count;
int count();//取值函数
int set_count();//设值函数

6、枚举命名

枚举命名应该保持与常量的命名规则相同,因为枚举类型中的每个元素的值都是确定的。

例如:

enum SystemStatus{
 conOK = 0,
 conLOST = 1,
}

7、宏命名

不建议使用宏,宏不会进行类型检查,而且还有可能导致变量重定义等问题。可以使用内联函数代替。

  • 宏命名全部大写,单词之间用下划线隔开

例如:

#define ROUND(x) ...
#define PI_ROUNDED 3.0

8、命名空间命名

  • 命名空间以小写字母命名.
  • 最高级命名空间的名字取决于项目名称.
  • 要注意避免嵌套命名空间的名字之间和常见的顶级命名空间的名字之间发生冲突.

顶级命名空间的名称应当是项目名或者是该命名空间中的代码所属的团队的名字. 命名空间中的代码, 应当存放于和命名空间的名字匹配的文件夹或其子文件夹中.



Tags:C++ 编程规范   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
参考中文版谷歌开源项目风格指南,但是并不与其完全相同,整理出来便于规范自己的编码风格。一、命名规范1、文件命名 文件名全部小写,如果项目没有命名约定则用下划线"_"分隔开 ...【详细内容】
2019-10-08  Tags: C++ 编程规范  点击:(236)  评论:(0)  加入收藏
▌简易百科推荐
一、简介很多时候我们都需要用到一些验证的方法,有时候需要用正则表达式校验数据时,往往需要到网上找很久,结果找到的还不是很符合自己想要的。所以我把自己整理的校验帮助类分...【详细内容】
2021-12-27  中年农码工    Tags:C#   点击:(2)  评论:(0)  加入收藏
引言在学习C语言或者其他编程语言的时候,我们编写的一个程序代码,基本都是在屏幕上打印出 hello world ,开始步入编程世(深)界(坑)的。C 语言版本的 hello world 代码:#include <std...【详细内容】
2021-12-21  一起学嵌入式    Tags:C 语言   点击:(11)  评论:(0)  加入收藏
读取SQLite数据库,就是读取一个路径\\192.168.100.**\position\db.sqlite下的文件<startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0"/...【详细内容】
2021-12-16  今朝我的奋斗    Tags:c#   点击:(21)  评论:(0)  加入收藏
什么是shellshell是c语言编写的程序,它在用户和操作系统之间架起了一座桥梁,用户可以通过这个桥梁访问操作系统内核服务。 它既是一种命令语言,同时也是一种程序设计语言,你可以...【详细内容】
2021-12-16  梦回故里归来    Tags:shell脚本   点击:(18)  评论:(0)  加入收藏
一、编程语言1.根据熟悉的语言,谈谈两种语言的区别?主要浅谈下C/C++和PHP语言的区别:1)PHP弱类型语言,一种脚本语言,对数据的类型不要求过多,较多的应用于Web应用开发,现在好多互...【详细内容】
2021-12-15  linux上的码农    Tags:c/c++   点击:(17)  评论:(0)  加入收藏
1.字符串数组+初始化char s1[]="array"; //字符数组char s2[6]="array"; //数组长度=字符串长度+1,因为字符串末尾会自动添&lsquo;\0&lsquo;printf("%s,%c\n",s1,s2[2]);...【详细内容】
2021-12-08  灯-灯灯    Tags:C语言   点击:(47)  评论:(0)  加入收藏
函数调用约定(Calling Convention),是一个重要的基础概念,用来规定调用者和被调用者是如何传递参数的,既调用者如何将参数按照什么样的规范传递给被调用者。在参数传递中,有两个很...【详细内容】
2021-11-30  小智雅汇    Tags:函数   点击:(19)  评论:(0)  加入收藏
一、问题提出问题:把m个苹果放入n个盘子中,允许有的盘子为空,共有多少种方法?注:5,1,1和1 5 1属同一种方法m,n均小于10二、算法分析设f(m,n) 为m个苹果,n个盘子的放法数目,则先对...【详细内容】
2021-11-17  C语言编程    Tags:C语言   点击:(49)  评论:(0)  加入收藏
一、为什么需要使用内存池在C/C++中我们通常使用malloc,free或new,delete来动态分配内存。一方面,因为这些函数涉及到了系统调用,所以频繁的调用必然会导致程序性能的损耗;另一...【详细内容】
2021-11-17  深度Linux    Tags:C++   点击:(38)  评论:(0)  加入收藏
OpenCV(Open Source Computer Vision Library)是一个(开源免费)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android、ios等操作系统上,它轻量级而且高效---由一系列...【详细内容】
2021-11-11  zls315    Tags:C#   点击:(50)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条