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

C++ 代码书写规范

2016-02-24 14:47 162 查看
根据平时写代码总结出来的个人代码风格习惯。根据遇到的情况不断更新。

头文件中避免多重包含

#ifndef XXXXXX_H

#indefine XXXXXX_H

#endif

局部变量尽量至于较小作用域,声明时就初始化

尽量少使用全局变量,静态变量可以视作全局变量

对于单参数的构造函数使用关键字explicit,避免隐式转换

在类中使用特定的声明次序:public:在private:之前,成员函数在数据成员(变量)前。定义次序如下:public:、protected:、private:其中typedef与num,常量,成员函数,数据成员

仅是数据的集合 使用struct

使用引用做函数形参,需要加上const

强制转换使用C++类型的,不要使用int y = (int ) x 或 int y = i nt ( x );

使用迭代器与模板类型来说,尽量使用前置++\--,后置++\--需要对表达式值进行一次拷贝,增加了代价

任何可以使用const的情况下,尽量使用 const变量,const函数(不会修改类成员变量状态)

整数用0,实数用0.0,指针用NULL(C++11中 nullptr),字符(串)用'\0'。

使用sizeof时,最好是sizeof(varname)

函数名总以动词开头,后面跟随其它名称。CheckForErrors()
峰值命名法,不含有下划线”_”

文件名(.cpp,.h) 全部小写,可以包含”_”

类型命名 采用峰值命名法,所有类型名: 类、结构体、类型定义(typedef)、枚举

变量名(结构体成员,命名空间普通成员),小写并且每个单词用”_”隔开。time_of_error,,类成员名以”_”结尾

全局变量命名,以g/g_作为前缀,Logger g_Log; Logger* g_pLog;

const常量命名 k+峰值命名

命名空间的名称全部小写

枚举值命名,所有字母都大写,并用下划线 '_' 作为单词分隔。

#define 宏命名 全部大写 下划线

函数的解释。

/**

* @brief 函数名: 函数功能

* @param 参数名:参数意义

* @return: 函数返回值

*/

尽量不使用ASCII字符,使用UTF-8格式

函数参数较多,一行写不下,我们应该分成几行来写,并且每个参数都另起一行对齐:

int AnyMethod(int arg1

, int arg2

, int arg3

, int arg4) {

}

//函数名和左括号之间没有空格

//参数和括号之间没有空格

//右括号与左大括号之间总是有空格

//如果函数有const 必须与最后一个参数为一行

If语句

If (settingslegendItem.backgroundMode ==

QwtPlotLegendItem::ItemBackground) {

….

}//在花括号后加上注释有助于理解 ifXX

//if中内容过多 可以分行写

//if和括号之间有空格, 右括号与大括号之间有空格

switch (var) {

case 0: {

}

Default: {

}

}

While (var) {

}

For语言书写规范

For (double x = -200.0; x <= 1000.0; x += 100.0 ) {

}

指针变量命名,指针变量名多数前面加p,”*”靠近变量名

String *pName = new String;

句点(.)或箭头(->)前后不要有空格,指针/地址操作符(*、&)后不要有空格。

布尔表达式 超过了80个字符(过长了),逻辑运算符总位于行尾

If (this_one_thing > this_other_thing &&

a_third_thing==a_fourth_thing&&

yet_another&last_one){

...

}

Return 返回值不加括号

字符后面有,与;,跟着字符走,若符号后面有字符之间添加空格

(•••)与[•••]中间有字符,参数与括号之间无空格

字符之间运算符、逻辑符等。字符空格符号空格字符

定义set< list<string> >x; 防止出现运算符
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: