您的位置:首页 > 编程语言 > C语言/C++

c++编程规范

2017-11-20 16:23 162 查看
1、 (1)名称是由字母、数字、及下划线组合而成, 且第一位不能为数字,  尽量使用标准c++14的特性和标准, 这样写起来              更加方便快捷.
(2)指针尽量使用share_ptr, weak_ptr之类的东西操作指针,防止内存异常或者泄露. 尽量使用标准库里面的东西,这样               跨平台性更好.
(3)与平台相关的api尽量使用函数封装成接口, 这样平台移植会更加方便.
例如不同平台的打开文件操作,我们把平台相关的api封装成openFile接口,使之符合跨平台特性
(4)尽量降低代码的耦合度, 尽量把相同的重复性代码抽离出来, 提高代码复用程度. 不要在代码中定义数值类型的常              量, 必须使用宏来取代数值型常量, 不仅修改调试很方便而且代码逻辑不容易出错.
(5)如果修改其他框架.请与修改的框架代码风格保持一致性, 以便于修改和阅读.


define LINUX

define MAX_PATH_SIZE 255

define FILE_ERR -1

int openFile(const char* path, const int &mode)

{

if(strlen(path) > MAX_PATH_SIZE) return FILE_ERR;

int fd;
#ifdef LINUX
fd = open(path, mode);
#endif

#ifdef MAC
fd = fopen(path, mode);
#endif

#ifdef WINDOWS
fd = CreateFile(path, mode, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
#endif

return fd;


}

2、 第一位尽量以字母开头,但是在作为类的数据成员可以使用下划线(_)作为开头, 类数据成员必须尽量定义为私有成员或者保护成员, 通过成员函数进行存取

//普通变量的定义

int count;

int nameSize;

//类数据成员的定义,普通数据成员都以m_的方式, 静态数据成员s_的方式

class Person

{

//通过成员函数存取数据

public:

const string& getName()const;

const int& getWedget()const;

static int& getCount()const;

void setName(const string& newName)
void setWidget(const int& newWidget);
static void setCount(const int& newCount);

private:
string m_Name;
int m_Widget;
static int s_Count;


}

3、 类的名称要以大写字母开头.

class Person;

4、 函数的名称以小写字母开头;

void getName();

void Person::GetName();

5、 当使用多个单词命名名称时,采用“驼峰规则”,即每个单词的首字母大写,例如:

void getData();

class ControlPanel;

6、 全局常量和宏定义以及类型的定义,函数指针类型 的名称都应该全部大写, 单词之间用下划线风格,常量也尽量全部大写,并尽可能在类的作用域内创建枚列举值, 枚举类型成员变量前面带类型的首字母大写和下划线, 例如

const int MAX_SIZE = 100; //常量的定义

define MAX_SIZE 100; //宏定义

typedef int INT32;//类型定义

typedef long INT64;

typedef void (CALLBACK*)(const int &); //函数指针类型

enum OPEN_MODE

{

OM_OPEN,

OM_CLOSE,

OM_WRITE,

OM_READ,

}

7、 每一个类的名称都应该是一个名词或者是名称短语;例如:

class ControlPanelData;

8、 每一个函数名称都应该是个动词或者是动词短语;例如:

double getSpeed();

9、 在if()语句中,每一个BOOL变量都应该近似于一个句子,例如:

bool isOpened;

10、针对于数据成员,采用了国际通用的匈牙利标记法,通过使用相同的前缀,让代码中的数据成员更加容易识别:

class Member

{

private:

int m_Size, m_Height; //以小写字母m_开头

static int s_Count; //以小写字母s_开头

}

11、获取器和设置器都是根据约定成俗的命名规则:

class Color

{

public:

int getColor()const; //获取器

bool isCheckd()const; //bool获取器

void setColor(const Color& newColor); //设置器

private:

int m_Color;

}

12. (1)关于符号表达式的编写规则, 花括号左右对其, 符号之间空格隔开, 单条条件判断语句不必使用花括号,

(2)每行语句之间尽量换行隔开, 使之看起来更加清晰, 尽量让代码看起来更加松散, 阅读排查问题更加方便

例如:

if(exp)

{

if(exp > exp2)

return 1;

else

return 2;

}

class Exp

{

private:

int m_Val = 1;

public:
const int getVal()const {return m_Val;}


}

void exp(int a, int b, int c)

{

switch(a)

{

case 1:break;

case 2:break;

case 3:break;

}

}

(1)每个函数尽量不要超过200行代码,如果超过代码逻辑尽量分离出来,降低代码的耦合度,

(2)每个文件的代码长度尽量不要超过2000行,超过尽量分离出不同文件.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言 c++编程规范