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 ...
随机推荐
- Python--day28--set去重
set去重:set依赖对象hash eq
- HDU 5974"A Simple Math Problem"(GCD(a,b) = GCD(a+b,ab) = 1)
传送门 •题意 已知 $a,b$,求满足 $x+y=a\ ,\ LCM(x,y)=b$ 条件的 $x,y$: 其中,$a,b$ 为正整数,$x,y$ 为整数: •题解 关键式子:设 $a,b$ 为正整 ...
- H3C 多路径网络中环路避免操作示例
- UPC个人训练赛第十五场(AtCoder Grand Contest 031)
传送门: [1]:AtCoder [2]:UPC比赛场 [3]:UPC补题场 参考资料 [1]:https://www.cnblogs.com/QLU-ACM/p/11191644.html B.Re ...
- 【踩坑记录】vue单个组件内<style lang="stylus" type="text/stylus" scoped>部分渲染失效
vue组件化应用,近期写的单个组件里有一个的渲染部分样式渲染不上去 因为同结构的其他组件均没有问题,所以排除是.vue文件结构的问题,应该是<style>内部的问题 <style l ...
- LuoguP3045牛券Cow Coupons
LuoguP3045 [USACO12FEB]牛券Cow Coupons 果然我贪心能力还是太差了 ZR讲过的原题我回来对做法没有一丁点印象 有时候有这样一种题目 每个数有两种不同的价值 你可以选择价 ...
- C++ windows客户端支持SSL双向认证
C++ windows客户端支持SSL双向认证,服务端是JAVA开发的,使用的证书是jks格式的.C++并不支持JKS格式的证书,所以要用openssl进行转换下. 1. 需要先把jks转成.p12文 ...
- 2019-8-31-dotnet-删除只读文件
title author date CreateTime categories dotnet 删除只读文件 lindexi 2019-08-31 16:55:58 +0800 2019-02-28 1 ...
- linux安装python3.*,更换Python2.*
下载并解压:Python-3.5.7.tgz [root@AH-aQYWTYSJZX01 python3]# ll total 20268 -rw-r----- 1 temp01 temp01 207 ...
- KEIL5.11安装小结
一.注意点 1.安装路径不能带中文,必须是英文路径 2.安装目录不能跟 51 的 KEIL 或者 KEIL4 冲突,三者目录必须分开 3.KEIL5 不像 KEIL4 那样自带了很多厂商的 MCU 型 ...