作为OIER,码风其实是一个比较严肃的话题,每个OIER都有不同的码风,这里简单记录一下我的码风。
可能会update
概述
此码风来源于本人DimensionTripper的长期积累,以及参考过教练szwujq与ViXbob和Edgration的代码风格后形成的
预编译
#include <foo>
应置于代码最开头,以C++标准库优先;工程代码中对应的.h文件应先于一切库。能使用#include <foo>
的地方绝不使用#include "foo"
;
使用using namespace foo
;
define foo bar
一般在using namespace foo
之前,#include <foo>
之后。
缩进
使用优美的4空格缩进
空格与换行
换行问题
大括号一定要换行(do-while
中do
后面的大括号例外
空格问题
一定要加空格的地方
- 多目运算符两侧(
,
是例外,详情见下) ,
及;
的右侧,只要它不位于行末。if
、for
等控制流关键字与其后的左括号之间- 类型中
*
与&
的左侧 do-while
中的do
与左大括号之间以及右大括号与while
之间
一定不能加空格的地方
- 单目运算符之后
- 左括号右侧与右括号左侧
,
及;
的左侧- 函数名与左括号之间
.
的两侧
其他
若表达式过长时可换行,运算符位于行尾,缩进以对齐为准则
空行
所有#include <foo>
与using namespace foo;
之间不应空行,之后应空一行。
一系列常量定义的上下应有空行。
函数/结构体定义根据其意义和用途酌情空行
一系列全局变量定义的上下应有空行。
语句之间可根据其意义酌情空行。
任何位置不能出现连续的两个(或以上)空行。
函数定义
main
函数返回值必须为int
,return 0
不可忽略。
若函数体只有一行且整个函数缩成一行后不超过80个字符,可依据当时的心情决定是否缩成一行
命名规则
一般使用英文译名,首字母大写
译文由多个单词组成的中间使用_
连接,每个单词首字母都要大写
用英文缩写命名时每个字母都要大写
变量可使用单字母 / 单词 / (单词 + 数字) / (字母 + 数字)四种方式命名
绝不使用拼音(及缩写)命名
实在想不到名字的可以使用例如ViXbob
、Edgration
等神犇常用ID命名
Example Code
1 |
|
以上代码为BZOJ 3732代码