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 ...
随机推荐
- servicemix-3.2.1 内置的服务引擎和绑定组件
服务引擎: servicemix-bean servicemix-camel servicemix-cxf-se servicemix-drools servicemix-eip servicemix ...
- 5-1rquests模拟登陆知乎之httpcode
1,状态码: 400错误:请求无效 (Bad request);出现这个请求无效报错说明请求没有进入到后台服务里 2,requests库:python常用的库,有空仔细阅读一下官方文档
- dell装系统
Dell f2进入bios USB support改为enable Uefi 改为legacy F12可看到USB
- C# 7.2 通过 in 和 readonly struct 减少方法值复制提高性能
在 C# 7.2 提供了一系列的方法用于方法参数传输的时候减少对结构体的复制从而可以高效使用内存同时提高性能 在开始阅读之前,希望读者对 C# 的值类型.引用类型有比较深刻的认知. 在 C# 中,如果 ...
- 机器学习——集成学习之Boosting
整理自: https://blog.csdn.net/woaidapaopao/article/details/77806273?locationnum=9&fps=1 AdaBoost GB ...
- 两种常见的缓存淘汰算法LFU&LRU
1. LFU 1.1. 原理 LFU(Least Frequently Used)算法根据数据的历史访问频率来淘汰数据,其核心思想是“如果数据过去被访问多次,那么将来被访问的频率也更高”. 1.2. ...
- 【一起学源码-微服务】Nexflix Eureka 源码六:在眼花缭乱的代码中,EurekaClient是如何注册的?
前言 上一讲已经讲解了EurekaClient的启动流程,到了这里已经有6篇Eureka源码分析的文章了,看了下之前的文章,感觉代码成分太多,会影响阅读,后面会只截取主要的代码,加上注释讲解. 这一讲 ...
- 学习Java第五周
通过这一段时间的学习发现Java和C++虽然都是面向对象的编程语言,有相似之处也有不同之处,相似的地方总会感觉易于接受,不同之处或者新接触的有些知识不是很好理解和掌握. 前一段时间学的内部类和接口便是 ...
- docker(整理中
docker镜像默认的下载地址就是docker的官网,而他们的官网在国内没有节点,时不时就被国家防火墙隔绝,会出现DNS解析不到,或者找不到镜像等狗血提示. 解决的方法有三个: 第一,就是不断尝试,因 ...
- Linux 操作虚拟机、数据库
1.打开虚拟机,输入命令:ifconfig 查看iP和端口号,端口号一般为:22 2.打开Xshell(先安装好),连接虚拟机(根据iP和端口号) 若连接成功,Xshell则会显示虚拟机的ip和端口号 ...