• Code Style


    预编译指令:

    顺序:

    • $ pragma $

    • $ include $

    • $ define $

    • $ undef $

    缩进:

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

    如果有多层嵌套 $#if $ $ #endif $ $#endif $后应有对应的注释标识出与其对应的 $#if $。

    尽量不要适用 $#define $而使用 $const $, $typedef $, $inline $。

    所有预编译命令不应缩进。

    写法:

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

    • $ include $ 中不使用空格。

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

    命名空间:

    写法:

    总是使用 $ using namespace std $ 或 导入

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

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

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

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

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

    顺序:

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

    缩进:

    继承上层缩进。

    花括号:

    写法:

    使用花括号时有两种规则:

    1. 使用 (Allman) 式花括号,也即花括号换行。 例如:
    void Func1()
    {
        for (;;)
        {
            // ...
        }
        if (case)
        {
            // ....
        }
        else
        {
            if (case 2)
            {
                // ..
            }
            else { Func2(); return; }
        }
    }
    
    1. 或者花括号的左右边都在同一行,右括号与左花括号之间有一空格,例如:
    for (;;) {Func1();Func2();}
    

    注意:

    即使内部只有一条语句的 $ if $ 与 $ for $ 等也必须用大括号括起来。

    行:

    写法:

    每行可以有多个(两个及以上)语句。但任何时候,每行不应太长。

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

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

    $ usingquad namespacequad std; $ 后有一空行 ;

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

    缩进:

    继承上层缩进 。

    指针与引用:

    写法:

    (OI) 代码中不使用指针。

    任何引用前的标识符 $ '&' $ 和引用变量类型标识符之间用一个空格隔开,如

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

    缩进:

    继承上层缩进 。

    函数与变量:

    写法:

    函数:

    函数采用大驼峰命名法,选择性地加入下划线 $ '_' $ ,采用对应算法缩写,如 $ KMP, CRT, NTT,CDQ; $ 如:

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

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

    void Func1() {}
    

    变量:

    变量可以以一个小写字母命名;

    全局数组名可使用1个大写字母+0~2个数字命名,如A, T1,F01;

    简短的inline函数,如min, upd(用作数据结构中的update操作);

    常量可以大写字母命名,如N, M;

    临时变量可以以下划线开头。

    缩进:

    继承上层缩进 。

    空格:

    写法:

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

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

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

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

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

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

    缩进:

    继承上层缩进 。

    注释:

    缩进:

    继承上层缩进。

    写法:

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

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

    int func1()
    {
        int a=1,b=2;
        
        /*
        return 3;
        */
        
        return a+b;//a+b=3 
    }
    
  • 相关阅读:
    js对象的深度克隆
    通用事件监听函数
    JavaScript封装
    Ajax
    MarkDown怎么在博客园展现出来
    MarkDown语法学习
    暑期培训第三周SDN总结
    暑期培训遇到的floodlight+mininet+ubuntu的问题
    Ubuntu14.04搭建mininet与可视化工具miniedit介绍
    Ubuntu 14.04 安装 Sublime Text 3,并用Sublime Text 3 安装Package Control
  • 原文地址:https://www.cnblogs.com/oierwyh/p/11342067.html
Copyright © 2020-2023  润新知