wyh 的 Code Style

参考GNAQ学长大人的Code Style

Rust式代码风格:

预编译指令:

顺序:

  • pragma

  • include

  • define

  • undef

缩进:

define undef 继承上层缩进,其余不缩进。

写法:

  • include 中能使用 < > 的尽量不要使用 " "

  • include 中不使用空格。

  • define undef 中允许被定义的宏为全部大写或全部小写,其余情况不允许使用大写。

限制:

不使用 #if #else #elif #endif #ifdef #ifndef #endif #line #error 以及其他预编译命令。

命名空间:

写法:

总是使用 using namespace std 或 导入

  • using std::cin
  • using std::cout
  • using std::endl
  • using std::min
  • using std::max

等在代码出现过的 std namespace 中的函数。

命名空间中可以使用 #define ,但必须
在结尾处 #undef,且 #define 指令应置于命名空间的开头处。

任何大型数据结构使用其大写简写为名称的单独 namespace , 如
namespace KDT namespace SGT namespace TRP,并总是在命名空间的结尾处 } 后缀一分号 ';' ,例如:

namespace SGT
{
    #define LCH tree[inx].ch[0]
    #define RCH tree[inx].ch[1]
    
    void func1()
    {
        // .....
    }
    
    #undef LCH
    #undef RCH
};

顺序:

应置于代码开头处的所有预编译指令之后。

缩进:

继承上层缩进。

花括号:

写法:

使用 $Allman$ 式花括号,也即花括号换行。 例如:

void Func1()
{
    for (;;)
    {
        // ...
    }
    if (case)
    {
        // ....
    }
    else
    {
        if (case 2)
        {
            // ..
        }
        else { Func2(); return; }
    }
}

在任何代码片段中不使用任何 逗号', ' 运算符连接两个语句,其正确格式为:

for (;;)
{
    Func1();
    Func2();
}

也即一对花括号的每一个前后都有一个空格,语句之间也有一个空格。

注意:

及时内部只有一条语句的iffor等也必须用大括号括起来。

行:

写法:

每行不可以有多个(两个及以上)语句。

多个意义独立的代码块之间应用一个空行隔开 ;

非空行尾不应有多余的空格 ;

using namespace std; 后有一空行 ;

函数、成员函数、结构体、全局变量块之间必须用空行隔开。

if for while 等语句,若其后只有一条语句 (或嵌套) ,可以直接缩进 而无需花括号 " { } "

缩进:

继承上层缩进 。

小括号:

写法:

除声明及调用函数时的括号紧跟其他字符外,任何成对小括号的前后必须有一个空格隔开其他字符,如:

for (;;)
    Func1();

if (case1)
{
    ..
}

int i = (j * 100 + log2(100) );

若右括号** ')'** 后接的是分号 ';' 则空格可以省略。

指针与引用:

写法:

$OI$ 代码中不使用指针。

引用部分采用 Rust 式命名,任何引用前的标识符 '&' 和引用变量之间用一个空格隔开,若前有类型标识符,则引用标识符紧跟类型标识符,如

void Func1(int& q, int& t)
{
    int a, b;
    int& aref = a, & bref = b;
}

缩进:

继承上层缩进 。

函数:

写法:

函数采用大驼峰命名法,选择性地加入下划线 **'_'** ,如:

void Update()
{
    ···
}
int Qry()
{
    ···
}
Mat Gauss_Elimination()
{
    ···
}

空函数体必须为以下格式:

void Func1() {}

缩进:

继承上层缩进 。

空格:

写法:

  • 逗号前后都不能有空格。

  • 冒号的两侧必须有一空格。

  • '++' '--' 前/后不需空格。

  • 形如 vector< pair<int, int> > 的声明,每对 <> 前后空格需要对称。

  • '::' '.' 的两侧不应有空格。

  • 初始化列表前后不需空格,如 max({a, b, c});

缩进:

继承上层缩进 。

注释:

缩进:

继承上层缩进。

写法:

  • 单行注释使用 $//$ ,之后应有一空格,如 $// do something$ 。

  • 多行注释使用 $/* /$ ,其中 $/$ 和 $/$ 应独占一行,且 $/$ 和 $*/$ 后应有一空行,例如:

int func1()
{
    int a=1,b=2;
    
    /*
    return 3;
    */
    
    return a+b;
}

猜你喜欢

转载自www.cnblogs.com/oierwyh/p/11122837.html
今日推荐