Code Style
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/11342067.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android原生视频播放VideoView的使用
- Android table布局开发实现简单计算器
- Android实现面包屑功能的代码(支持Fragment联动)
- Android自定义带动画效果的圆形ProgressBar
- Android App启动图启动界面(Splash)的简单实现代码
- WordPress头部去除window._wpemojiSettings代码
- Android小程序实现选项菜单
- Linux VPS安装Google Authenticator实现SSH登陆二次验证
- Android小程序实现访问联系人
- Android小程序实现切换背景颜色
- 浅析Android加载字体包及封装的方法
- android实现滑动标签页效果的代码解析
- Android PC端用ADB抓取指定应用日志实现步骤
- Android studio 禁用AndroidX方式
- Android 实现把bitmap图片的某一部分的颜色改成其他颜色