szTom's Code Style
介绍szTom在C++中使用的代码风格
头文件
必须使用using namespace std;
如果是C头文件,必须使用c前缀文件名。
#include <cstdio>
而不是
#include <stdio.h>
所有的#include必须放置于程序开头
预处理
所有的预编译指令(包括 #ifdef 等)不能缩进。
代码不能出现魔鬼数字,必须使用#define
用#define声明的宏函数,减少空格的使用。
代码
缩进
对于每个代码块,使用与4个空格等长的 Tab 缩进。
花括号
花括号必须不换行,左花括号的左边必须有且仅有一个空格。
如:
if (condition) {
} else {
}
行
多个意义独立的代码块之间应该用空行隔开。
函数、成员函数、结构体、全局变量块之间必须用空行隔开。
if (condition) {
// some code
}
for (int i = 1; i <= n; ++i) {
// some code
}
using namespace std;必须紧跟在 #include 后的空行后,之后必须一个空行。
不应该有两个连续的空行。
除 for 中的三个语句外,每行不能有超过一个由;隔开的语句。
代码块
由流程控制语句引导的代码块可以省略花括号,但是不能嵌套。
// 正确
if (ok) printf("POSSIBLE\n");
else printf("IMPOSSIBLE\n");
// 错误
for (int i = 1; i <= n; ++i)
for (int j = 1; j <= n; ++j)
scanf("%d", a[i] + j);
不能使用逗号表达式。
函数
main 函数的返回值类型必须是 int,不可以省略 return 0;。
空函数体可以使用 {}。
可以使用lamada表达式。
main 函数必须放置于整个程序末尾。
函数声明修饰符(如inline,template<typename T>)后,必须有一个空格,包括行末。
inline template<typename T>
T abs(T x) {
return x >= 0 ? : -x;
}
变量
除用于字符串的char数组外,所有长度大于\(5\)的数组必须使用全局变量。
空格
逗号 , 与 for 中的分号 ; 后面必须有一个空格,前面不能有空格。
在()[]前后不能有空格。
双目运算符、三目运算符的两侧必须有一个空格。
函数修饰冒号的右侧必须有一个空格,左侧不能有空格, 其他冒号两侧都必须有一个空格。
struct Edge {
int x;
Edge(): x(0) {}
}
x >= 0 ? x : -x;
流程控制关键字之后,函数名之后,左圆括号前必须有一个空格。
在.、->、:: 的两边不能有空格。
在算术运算符,位运算付前后必须有一个空格。
在预处理记号后必须有一个空格。
在模板类的实例化时,出现嵌套的,>之间必须有一个空格。
vector<vector<int> > v;
指针与引用
在描述类型名时,指针符号 * 和引用符号 & 与左侧的类型名之间必须有一个空格,与右侧的其它关键字之间不能有空格。
在定义变量、函数返回值、参数时,指针符号 * 和引用符号 & 与左侧的类型名之间必须有一个空格,与右侧的变量、函数、参数名之间不能有空格。
不能取数组某一项的地址,应该计算指针。
// 错误
scanf("%d", &a[i]);
// 正确
scanf("%d", a + i);
杂项
可以使用三目运算符,但不能嵌套。
可以使用switch-case语句,但不能嵌套。
不能使用typedef将自带类型重定义以缩短代码长度。
// 错误写法
typedef long long LL;
在不影响代码逻辑的前提下,使用将自增,自减的运算符放在前面。
++a;
不能使用 int 代替 bool 表示逻辑值。
szTom's Code Style的更多相关文章
- 与你相遇好幸运,The Moe Node.js Code Style Guide
The Moe Node.js Code Style Guide By 一个最萌的开发者 @2016.9.21 >>代码是人来阅读的,格式规范的代码是对编程人员最好的礼物 :) > ...
- Eclipse setting Java code style and codetemplate
1.open the eclipse tool window First click the Window menu,then check the children's menu which name ...
- Java Code Style
近期困惑于团队成员代码风格迥异,代码质量不可控,作为一名老司机,忧患于后期服务的可维护性,多次一对一的代码Review,耗时耗力不说,效果也不明显.痛定思痛,多次反思之后得出结论:无规矩不成方圆,可靠 ...
- 【Idea】idea code style配置eclipse code formatter
在eclipse中有自动配置code style的功能 ,但是idea上却没有,这个时候需要自己手工配置 1. 在idea中找到Preference->Plugins->Browse re ...
- checkstyle.xml Code Style for Eclipse
1. Code Templates [下载 Code Templates] 打开 Eclipse -> Window -> Preferences -> Java -> Cod ...
- _rqy's Code Style for OI
_rqy's Code Style for OI Inspired by Menci's Code Style for OI 本文介绍_rqy的OI中的代码规范.其来源主要为_rqy的长期积累及参考G ...
- Javascript Code Style Guide
本指南采用的Airbnb发布的基于ES5的JavaScript Code Style. ES5 英文版:https://github.com/airbnb/javascript/tree/es5-de ...
- 在IntelliJ IDEA中配置Google Java Code Style及代码格式化快捷键
google-java-format plugin should intercept the “Reformat Code” action in IDEA (Ctrl+Alt+L) and apply ...
- intelij IDEA设置goole code style风格
1.安装google-java-format 插件 file ->Setings... ->pligins 输入上诉插件安装 2.下载IntelliJ Java Goog ...
随机推荐
- JPA一对多循环引用的解决&&JackSon无限递归问题
说是解决,其实不是很完美的解决的,写出来只是想记录一下这个问题或者看一下有没有哪位仁兄会的,能否知道一二. 下面说说出现问题: 问题是这样的,当我查询一个一对多的实体的时候,工具直接就爆了,差不多我就 ...
- python基础十四之匿名函数
匿名函数 处理简单问题的简化函数,关键字lambda. # 格式:函数名 = lambda 参数:返回值 anonymity = lambda s: s ** 0.5 print(anonymity( ...
- 查看laravel版本
方法1: 使用php artisan --version ,只要能看懂这个命令的人一定已经具有初步的Laravel知识.再介绍一种不需要命令,直接去文件中去查看的方法. 方法2: 在项目文件中找ven ...
- H3C 路由度量值(Metric)
- 聚类——DBSCAN
转载自: https://www.cnblogs.com/pinard/p/6208966.html http://www.cnblogs.com/pinard/p/6217852.html http ...
- 【t098】符文之语
Time Limit: 1 second Memory Limit: 128 MB [问题描述] 当小FF来到神庙时,神庙已经破败不堪了.但神庙的中央有一个光亮如新的石台.小FF走进石台, 发现石台上 ...
- 类(class)和继承
.继承之前的写法 ↓ ----------------------------------------------------------------------------------------- ...
- MFC 任务托盘显示气泡
void CTestDlg::OnClose() { ShowWindow(SW_HIDE); if (!m_bHideNoticeInfo) { ShowBalloonTip(_T(, ); m_b ...
- 【2016常州一中夏令营Day3】
小 W 摆石子[问题描述]小 W 得到了一堆石子,要放在 N 条水平线与 M 条竖直线构成的网格的交点上.因为小 M 最喜欢矩形了,小 W 希望知道用 K 个石子最多能找到多少四边平行于坐标轴的长方形 ...
- P3803 FFT求多项式系数
P3803 FFT求多项式系数 传送门:https://www.luogu.org/problemnew/show/P3803 题意: 这是一道FFT模板题,求多项式系数 题解: 对a和b的系数求一个 ...