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 ...
随机推荐
- Java Integer类的缓存
首先看一段代码(使用JDK 5),如下: public class Hello { public static void main(String[] args) { int a = 1000, b = ...
- 1、Python 日期时间格式化输出
今天帮朋友写自动化脚本,又需要用格式化日期,又忘记怎么写了,还是写到自己博客里面,方便日后需要的时候看一眼吧.So,临时加一篇 Python 的文章. 1.Python的time模块 import t ...
- Django入门3--Models
- 2018-6-15-win10-uwp-xaml-绑定接口
title author date CreateTime categories win10 uwp xaml 绑定接口 lindexi 2018-6-15 21:7:19 +0800 2018-2-1 ...
- Java中i++和++i
直接上代码: int i = 0; for (++i; ++i <= 2; ++i) { System.out.println("循环内的i=" + i); } S ...
- EJB实例
两种管理机制: 无状态bean使用实例池技术管理bean 有状态bean使用激活(activation)管理bean 内存对象序列化到磁盘 磁盘反序列化到内存
- dotnet core 发布只带必要的依赖文件
在使用 dotnet core 发布独立项目的时候,会带上大量依赖的库,但是通过微软提供的工具可以去掉一些在代码没有用到的库. 本文介绍的工具是 Microsoft.Packaging.Tools.T ...
- dotnet Framework 源代码 类库的意思
本文告诉大家 dotnet framework 的源代码类库的意思 下面列出来 dotnet framework 源代码的各个类库的作用. System System 命名空间包含基本类和基类,这些类 ...
- dotnet 如何在 Mock 模拟 Func 判断调用次数
在 dotnet 程序有很好用的 Mock 框架,可以用来模拟各种接口和抽象类,可以用来测试某个注入接口的被调用次数和被调用时传入参数.本文告诉大家如何在 Mock 里面模拟一个 Func 同时模拟返 ...
- dotnet 通过 WMI 拿到显卡信息
本文告诉大家如何通过 WMI 拿到显卡信息 如果使用的是 dotnet core 请先引用 Microsoft.Windows.Compatibility 才可以使用 WMI 代码 通过下面的代码可以 ...