c,c++代码格式规范
第一章 原则
使代码易于管理的方法之一是增强代码一致性,让别人可以读懂你的代码是很重要的,保持统一编程风格意味着可以轻松根据“模式匹配”规则推断各种符号的含义。创建通用的、必需的习惯用语和模式可以使代码更加容易理解。虽然在某些情况下改变一些编程风格可能会是好的选择,但我们还是应该遵循一致性原则,尽量不这样去做。
关键在于保持一致。
第二章 排版
2.1 空行
【规则2-1-1】在每个函数、结构体、枚举、类定义结束之后都要加空行。
【规则2-1-2】在一个函数体内,逻辑密切相关的语句之间不加空行,其它地方应加空行分隔。
struct st1
{
…
};
// 空行
enum
{
…
};
// 空行
void Function1(…)
{
…
}
// 空行
void Function2(…)
{
…
} // 空行
while (condition)
{
statement1;
// 空行
if (condition)
{
statement2;
}
else
{
statement3;
}
// 空行
statement4;
}
函数之间的空行 函数内部的空行
【规则2-1-3】相对独立的程序块之间、变量说明之后必须加空行。
if (!is_lock_card_succ)
{
… // program code
}
GetLockPhoneInfo(&st_lock_phone_info); if (!is_lock_card_succ)
{
… // program code
}
//空行
GetLockPhoneInfo(&st_lock_phone_info);
不规范代码 规范代码
2.2 代码行
【规则2-2-1】一行代码只做一件事情,如只定义一个变量,或只写一条语句。这样的代码容易阅读,并且方便于写注释。
【规则2-2-2】if、for、while、do等语句自占一行,执行语句不得紧跟其后。不论执行语句有多少都要加{}。这样可以防止书写失误。
int width, height, depth;// 宽度高度深度
int width; // 宽度
int height; // 高度
int depth; // 深度
X = a + b; y = c + d; z = e + f;
x = a + b;
y = c + d;
z = e + f;
if (width < height) dosomething(); if (width < height)
{
dosomething();
}
for (initialization; condition; update)
dosomething();
other(); for (initialization; condition; update)
{
dosomething();
}
// 空行
other();
不规范代码 规范代码
2.3 代码行内的空格
说明:空格的目的在于更清晰的代码。
【规则2-3-1】关键字之后要留空格。const、static等关键字之后至少要留一个空格,否则无法辨析关键字;if、for、while、switch等关键字之后应留一个空格再跟左括号‘(’,以突出关键字。
【规则2-3-2】函数名之后不要留空格,紧跟左括号‘(’,以与关键字区别。
【规则2-3-3】‘(’向后紧跟,‘)’、‘,’、‘;’向前紧跟,紧跟处不留空格。
【规则2-3-4】‘,’之后要留空格,如Function(x, y, z)。如果‘;’不是一行的结束符号,其后要留空格,如for (initialization; condition; update)。
【规则2-3-5】赋值操作符、比较操作符、算术操作符、逻辑操作符、位域操作符,如“=”、“+=” “>=”、“<=”、“+”、“*”、“%”、“&&”、“||”、“<<”,“^”等二元操作符的前后应当加一个空格。
【规则2-3-6】一元操作符如“!”、“~”、“++”、“–”、“&”(地址运算符)等前后不加空格。
【规则2-3-7】象“[]”、“.”、“->”这类操作符前后不加空格。
【建议2-3-1】对于表达式比较长的for语句和if语句,为了紧凑起见可以适当地去掉一些空格,如for (i=0; i<10; i++)和if ((a<=b) && (c<=d))
void Func1(int x, int y, int z); void Func1 (int x,int y,int z);
if (year >