szTom's Code Style

Posted szdytom

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 中的三个语句外,每行不能有超过一个语句。

不能使用逗号表达式。

函数

main 函数的返回值类型必须int不可以省略 return 0;

空函数体可以使用 {}

可以使用lamada表达式。

main 函数应该放置于整个程序末尾。

函数声明修饰符(如inlinetemplate<typename T>)后,必须有一个空格。

inline template<typename T> 
T abs(T x) {
    return x >= 0 ? : -x;
}

变量

除用于字符串的char数组外,所有长度大于(5)的数组必须使用全局变量。

空格

逗号 ,for 中的分号 ; 后面必须有一个空格,前面不能有空格。

()[]前后不能有空格。

双目运算符、三目运算符的两侧必须有一个空格。

冒号的右侧必须有一个空格,左侧不能有空格。

struct Edge {
    int x;
    Edge(): x(0) {}
}

流程控制关键字之后,函数名之后,左圆括号前必须有一个空格。

.->:: 的两边不能有空格。

在算术运算符,位运算付前后必须有一个空格。

在预处理记号后必须有一个空格。

在模板类的实例化时,出现嵌套的,>之间必须有一个空格。

vector<vector<int> > v;

指针与引用

在描述类型名时,指针符号 * 和引用符号 & 与左侧的类型名之间必须有一个空格,与右侧的其它关键字之间不能有空格。

在定义变量、函数返回值、参数时,指针符号 * 和引用符号 & 与左侧的类型名之间必须有一个空格,与右侧的变量、函数、参数名之间不能有空格。

杂项

可以使用三目运算符,但不能嵌套。

可以使用switch-case语句,但不能嵌套。

不能使用typedef将自带类型重定义以缩短代码长度。

// 错误写法
typedef long long LL;

在不影响代码逻辑的前提下,使用将自增,自减的运算符放在前面。

++a;

不能使用 int 代替 bool 表示逻辑值。

以上是关于szTom's Code Style的主要内容,如果未能解决你的问题,请参考以下文章

QT插件

QT 常见错误收集

Friend's Code Review

python如何支持中文注释

ORA-00600: internal error code, arguments: [25027], [1], [0], [], [], [], [], [], [], [], [], [](代码片

ORA-00600: internal error code, arguments: [25027], [1], [0], [], [], [], [], [], [], [], [], [](代码片