代码格式&&驼峰命名法

105 阅读2分钟

while (n) {

}

if (n) {

}

else {

}

代码头文件是顶头写的,即前面没有空格

#include

#include

在类中参数权限是在类声明的下一行,且前面有一个空格

换行后的参数保持 4 个空格的缩进.(这个也适用于函数和条件、循环语句)

class Person {

public:

int a;//换行后再走四个空格

int b;

private:

int c

}

水平留白


通用

void f(bool b) { // 左大括号前总是有空格.

int i = 0; // 分号前不加空格.

// 列表初始化中大括号内的空格是可选的.

// 如果加了空格, 那么两边都要加上.

int x[] = { 0 };

int x[] = {0};

// 继承与初始化列表中的冒号前后恒有空格.

class Foo : public Bar {

public:

// 对于单行函数的实现, 在大括号内加上空格

// 然后是函数实现

Foo(int b) : Bar(), baz_(b) {} // 大括号里面是空的话, 不加空格.

void Reset() { baz_ = 0; } // 用括号把大括号与实现分开.

添加冗余的留白会给其他人编辑时造成额外负担. 因此, 行尾不要留空格. 如果确定一行代码已经修改完毕, 将多余的空格去掉; 或者在专门清理空格时去掉(尤其是在没有其他人在处理这件事的时候).

循环和条件语句

if (b) { // if 条件语句和循环语句关键字后均有空格.

} else { // else 前后有空格.

}

while (test) {} // 圆括号内部不紧邻空格.

switch (i) {

for (int i = 0; i < 5; ++i) {

switch ( i ) { // 循环和条件语句的圆括号里可以与空格紧邻.

if ( test ) { // 圆括号, 但这很少见. 总之要一致.

for ( int i = 0; i < 5; ++i ) {

for ( ; i < 5 ; ++i) { // 循环里内 ; 后恒有空格, ; 前可以加个空格.

switch (i) {

case 1: // switch case 的冒号前无空格.

...

case 2: break; // 如果冒号有代码, 加个空格.

操作符

// 赋值运算符前后总是有空格.

x = 0;

// 其它二元操作符也前后恒有空格, 不过对于表达式的子式可以不加空格.

// 圆括号内部没有紧邻空格.

v = w * x + y / z;

v = w*x + y/z;

v = w * (x + z);

// 在参数和一元操作符之间不加空格.

x = -5;

++x;

if (x && !y)

...

模板和转换

// 尖括号(< and >) 不与空格紧邻, < 前没有空格, > 和 ( 之间也没有.

vector x;

y = static_cast<char*>(x);

// 在类型与指针操作符之间留空格也可以, 但要保持一致.

vector<char *> x;

垂直留白


总述

垂直留白越少越好.

驼峰命名法


这个是对变量命名常用方法之一,恰当命名的变量更有利于对代码的理解;

小驼峰法

第一个单词首字母小写,后面其他单词首字母大写。