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)