zoukankan      html  css  js  c++  java
  • 个人编程规范

    1:排版与格式

    相对独立的程序块之间、变量说明之后必须加空行。
    一条语句不能过长,如不能拆分需要分行写。一行到底多少字符换行比较合适,产品可以自行确定。
    多个短语句(包括赋值语句)不允许写在同一行内,即一行只写一条语句。
    所有的缩进皆为4个空格
    分隔号(如大括号)应各自独立占一行并且位于同一列,同事与引用他们的语句左对齐
    在函数的开始,类和接口的定义以及 if/for/do/while/switch/case等语句中均要采用此种缩进方式
    每行只写一条语句
    相对独立的程序之间,变量说明之后必须加空行

    2:变量命名
    一个变量只有一个功能,不能把一个变量用作多种用途。
    防止局部变量与全局变量同名。
    变量的名字应当使用“名词”或者“形容词+名词”
    用正确的反义词组命名具有互斥意义的变量或相反动作的函数等。
    尽量避免名字中出现数字编号,如Value1,Value2等,除非逻辑上的确需要编号

        int    minValue;
        int    maxValue;
    
        int    SetValue(…);
        int    GetValue(…);
        int    error_number;
        int    number_of_completed_connection;
        
        if (!flag)    // 表示flag为假
        if (condition)
        {
            return x;
        }
        else
        {
            return y;
        }
        
        for (col=0; col<5; col++)
        {
            for (row=0; row<100; row++)
            {
                sum = sum + a[row][col];
            }
        }
    
        switch (variable)
        {
            case value1 :     
                 … 
                break;
            case value2 :     
            //明确注释
            case value3 :     
                … 
                break;
                …
            default :      … 
            break;
        }

    3:函数

    参数的书写要完整,不要贪图省事只写参数的类型而省略参数名字。如果函数没有参数,则用void填充。
    例如:

    void SetValue(int width, int height);    // 良好的风格
    void SetValue(int, int);                // 不良的风格
    float GetValue(void);        // 良好的风格
    float GetValue();            // 不良的风格  

    参数命名要恰当,顺序要合理。

    void StringCopy(char *str1, char *str2);   // 不良的风格
    void StringCopy(char *strDestination,const char *strSource);  // 良好的风格

    如果参数是指针,且仅作输入用,则应在类型前加const,以防止该指针在函数体内被意外修改。

    void StringCopy(char *strDestination,const char *strSource); // 良好的风格

    避免函数有太多的参数,参数个数尽量控制在5个以内。如果参数太多,在使用时容易将参数类型或顺序搞错。
    尽量不要使用类型和数目不确定的参数。

    不要省略返回值的类型。如果函数没有返回值,那么应声明为void类型。

    4:注释

    // 和 /* */

    5: 防止文件重复包含

    #ifndef TIMER_H
    #define TIMER_H
    ..
    #endif

    6:常见的缩写

    argument 可缩写为 arg
    buffer 可缩写为 buff
    clock 可缩写为 clk
    command 可缩写为 cmd
    compare 可缩写为 cmp
    configuration 可缩写为 cfg
    device 可缩写为 dev
    error 可缩写为 err
    hexadecimal 可缩写为 hex
    increment 可缩写为 inc、
    initialize 可缩写为 init
    maximum 可缩写为 max
    message 可缩写为 msg
    minimum 可缩写为 min
    parameter 可缩写为 para
    previous 可缩写为 prev
    register 可缩写为 reg
    semaphore 可缩写为 sem
    statistic 可缩写为 stat
    synchronize 可缩写为 sync
    temp 可缩写为 tmp

    7:用正确的反义词组命名具有互斥意义的变量或相反动作的函数

    add/remove begin/end create/destroy
    insert/delete first/last get/release
    increment/decrement put/get add/delete
    lock/unlock open/close min/max
    old/new start/stop next/previous
    source/target show/hide send/receive
    source/destination copy/paste up/down

    8:宏、常量

    #define RECTANGLE_AREA(a, b) ((a) * (b))

    使用宏时,不允许参数发生变化。

    9:注意

    禁止内存操作越界
    禁止内存泄漏
    禁止引用已经释放的内存空间

    当你的才华还撑不起你的野心时,那你就应该静下心来学习。
  • 相关阅读:
    通过ADB命令查看当前Android运行程序的页面信息
    C#中发起GET和POST请求的方法
    CocoaPods使用
    Carthage使用
    Mac终端常用命令和操作
    Mac OS环境变量配置
    Mac OS包管理器Homebrew
    js利用localStroage实现一个页面栈
    vue-cli快速搭建Vue脚手架 (vue-cli 3.x 模板)
    yarn和npm常用命令
  • 原文地址:https://www.cnblogs.com/aceg/p/4384260.html
Copyright © 2011-2022 走看看