Rust式代码风格:
预编译指令:
顺序:
- pragma
- include
- define
- undef
缩进:
define undef 继承上层缩进,其余不缩进。
写法:
- include 中能使用 < > 的尽量不要使用 " " ;
- include 中不使用空格。
- define undef 中允许被定义的宏为全部大写或全部小写,其余情况不允许使用大写。
限制:
不使用 #if #else #elif #endif #ifdef #ifndef #endif #line #error 以及其他预编译命令。
命名空间:
写法:
总是使用 using namespace std 或 导入
- using std::cin
- using std::cout
- using std::endl
- using std::min
- using std::max
等在代码出现过的 std namespace 中的函数。
命名空间中可以使用 #define ,但必须
在结尾处 #undef,且 #define 指令应置于命名空间的开头处。
任何大型数据结构使用其大写简写为名称的单独 namespace , 如
namespace KDT namespace SGT namespace TRP,并总是在命名空间的结尾处 } 后缀一分号 ‘;‘ ,例如:
namespace SGT
{
#define LCH tree[inx].ch[0]
#define RCH tree[inx].ch[1]
void func1()
{
// .....
}
#undef LCH
#undef RCH
};
顺序:
应置于代码开头处的所有预编译指令之后。
缩进:
继承上层缩进。
花括号:
写法:
使用 $Allman$ 式花括号,也即花括号换行。 例如:
void Func1()
{
for (;;)
{
// ...
}
if (case)
{
// ....
}
else
{
if (case 2)
{
// ..
}
else { Func2(); return; }
}
}
在任何代码片段中不使用任何 逗号‘, ‘ 运算符连接两个语句,其正确格式为:
for (;;)
{
Func1();
Func2();
}
也即一对花括号的每一个前后都有一个空格,语句之间也有一个空格。
注意:
及时内部只有一条语句的if与for等也必须用大括号括起来。
行:
写法:
每行不可以有多个(两个及以上)语句。
多个意义独立的代码块之间应用一个空行隔开 ;
非空行尾不应有多余的空格 ;
using namespace std; 后有一空行 ;
函数、成员函数、结构体、全局变量块之间必须用空行隔开。
if for while 等语句,若其后只有一条语句 (或嵌套) ,可以直接缩进 而无需花括号 " { } " 。
缩进:
继承上层缩进 。
小括号:
写法:
除声明及调用函数时的括号紧跟其他字符外,任何成对小括号的前后必须有一个空格隔开其他字符,如:
for (;;)
Func1();
if (case1)
{
..
}
int i = (j * 100 + log2(100) );
若右括号** ‘)‘** 后接的是分号 ‘;‘ 则空格可以省略。
指针与引用:
写法:
$OI$ 代码中不使用指针。
引用部分采用 Rust 式命名,任何引用前的标识符 ‘&‘ 和引用变量之间用一个空格隔开,若前有类型标识符,则引用标识符紧跟类型标识符,如
void Func1(int& q, int& t)
{
int a, b;
int& aref = a, & bref = b;
}
缩进:
继承上层缩进 。
函数:
写法:
函数采用大驼峰命名法,选择性地加入下划线 **‘_‘** ,如:
void Update()
{
···
}
int Qry()
{
···
}
Mat Gauss_Elimination()
{
···
}
空函数体必须为以下格式:
void Func1() {}
缩进:
继承上层缩进 。
空格:
写法:
- 逗号前后都不能有空格。
- 冒号的两侧必须有一空格。
- ‘++‘ ‘--‘ 前/后不需空格。
- 形如 vector< pair<int, int> > 的声明,每对 <> 前后空格需要对称。
- ‘::‘ ‘.‘ 的两侧不应有空格。
- 初始化列表前后不需空格,如 max({a, b, c});。
缩进:
继承上层缩进 。
注释:
缩进:
继承上层缩进。
写法:
- 单行注释使用 $//$ ,之后应有一空格,如 $// do?something$ 。
- 多行注释使用 $/* /$ ,其中 $/$ 和 $/$ 应独占一行,且 $/$ 和 $*/$ 后应有一空行,例如:
int func1()
{
int a=1,b=2;
/*
return 3;
*/
return a+b;
}
原文地址:https://www.cnblogs.com/oierwyh/p/11122837.html