总的来说,W-RB的代码分为这几个部分:

  1. 头文件及名字空间部分

  2. 宏定义部分

  3. 结构体部分

  4. 常量部分

  5. 变量部分

  6. 函数部分

部分与部分之间必须有且只有一空行

顺序不可颠倒

main函数必须在程序最末

头文件及名字空间部分

每个头文件应单独分行

名字空间应在所有头文件之后

E.g.

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<string>
#include<cmath>
using namespace std;

宏定义部分

每个宏定义应单独分行

宏定义名应全部大写

E.g.

#define INF 0x3f3f3f3f
#define MOD 1000000007

结构体部分

没什么好说的?

E.g.

struct student
{
    string name;
    int age;
    int grade[1007];
};

常量部分

请参考“宏定义部分”

变量部分

变量名应具有特殊意义,且全部小写

同类型的变量应在同一行定义

非同类型的变量应分行

同变量类型的数组与非数组不属于同类型变量,因此,数组与变量应分行

定义顺序应是结构体->字符串->数组->变量

E.g.

string name;
int grade[1007];
int sun,num;
char abc;

函数部分

缩进

缩进必须为4格

语句

for语句外,其他行必须有且只有一个语句

对于for while if等语句,若主体只有一个语句,则可以不写括号

下级语句必须比上级语句缩进4格

空格

鄙人基本不空格

若要空格,运算符前后应有且只有一个空格

大E.g.

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<string>
#include<cmath>
using namespace std;

#define MAXN 1007
#define INF 0x3f3f3f3f
#define MOD 1000000007

struct student
{
    string name;
    int age;
    int grade[1007];
};

student stu[1007];
string teacher;
int map[1007];
int sun,num;
char abc;

void plus(int n)
{
    if(n==10)
        return;
    else
    {
        sun++;
        plus(n+1);
    }
}

int main()
{
    scanf("%d",&n);
    plus(n);
    printf("%d",n);
    return 0;
}

此上为W-RB的码风及要求。

部分参考@Menci的码风

02-14 03:52