Code Style of Mangata
本文用于介绍Mangata的代码书写习惯
概览
①所有的#include指令放在整个程序的最上面
②不应该使用using namespace std;
③main函数放在程序的末尾
④不应该用int代替bool的逻辑值
⑤main函数的返回类型是int并且main函数的末尾请务必return 0;
⑥main函数使用换行的花括号
缩进
对于每个代码块(大括号里面的内容),使用4空格或者等长的Tab缩进
花括号
花括号有两种写法,①花括号换行,②花括号不换行
①花括号换行: 左花括号必须和上一级块的缩进相同
②花括号不换行: 左花括号有且仅有一个空格
// 1
if (condition)
{
}
else
{
}
// 2
if (condition) {
} else {
}
行
①除了for中的三个语句外,每行不能超过一个语句。如果一行内有多个表达式,请使用逗号隔开
②连续空行数目不能大于1
③非空行尾不能有多余的空格
④函数、成员函数、结构体、全局变量块之间尽量用一个空行隔开
⑤程序末尾不能有多余的空行
⑥如果程序中有using namespace std; 请紧跟着最后一条#include书写
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
const int N = 10005;
struct Node {
int a;
};
int a,b,c;
double t1,t2;
int main()
{
return 0;
}
函数
①main函数的返回类型必须是int,并且main函数的末尾必须返回return 0;
②空函数可以使用 {} (但是似乎很鸡肋?)
③传参的时候根据需要选择是否引用或者const,尽量少用指针(不是说不用)。
变量
①少用全局变量
②局部变量在使用的时候定义,并且局部变量名不能和上一个块的变量名重名,可以和全局变量重名
③只在一个函数内使用到的,但是生存周期在全局的,请使用static修饰
空格
①逗号 , 与for中的分号 ; 后面都要有一个空格,前面不能有空格
②左圆(方)括号后、右圆(方)括号前,在书写长表达式时,为了便于阅读,可以加一个空格,如
f[i][j] = f[ f[i][j - 1] ][j - 1]
③双目运算符、三目运算符的两侧必须有一个空格
④单目运算符的两侧不能有空格
⑤冒号的两侧必须有空格
三目运算符 a > b ? a : b;
双目运算符 a == b
单目运算符 !a
⑥流程控制关键字之后,左圆括号前必须有一个空格,函数名之后,左圆括号前不能有空格,while和do-while的左括号前也不能有空格。
⑦ .
、->
、::
的两边不能有空格。
命名
①常量请使用全大写,变量首字母小写,结构体首字母大写
②函数的命名可以用单词的缩写(实在没法你可以使用pinyin)