技术开发 频道

软件开发规范

    三. 一些习惯 

    我认为比较好的习惯: 

    1.if(0 == GetDataType(…))比if(GetDataType(…) == 0) 好,纵使误将==写成=,在编译一层就会报错。

    2. 
    #define MAX_DOWNLOADNUM 20
struct DownInfo m_DownInfo[MAX_DOWNLOADNUM]; 
   
在代码中尽量不用具体的大小数值,定义成宏,便于以后维护。 

    3. 
    CUSTXG_CONTABLE g_lpCustCon[] = 
   
    {"数值串1",C_ZGB,C_CUSTJBM,C_VT_FBJ,"万"}, 
    {"数值串2",C_ZSZ,C_CUSTJBM,C_VT_FBJ,"万"}, 
    … 
    {"数值比例",C_WTB,C_CUSTHQ,C_VT_FBJ,"%"} 
    }; 
    int g_nCustNum = sizeof(g_lpCustCon)/sizeof(CUSTXG_CONTABLE); 

    g_ nCustNum自动适应g_lpCustCon的大小。 

    4. 

    函数定义short GetInputType( const char * lpzInput)比short GetInputType (char * lpzInput)好,以免lpzInput在函数体中被破坏。 

    5. 

    协议包头定义成: 
    typedef struct tagDataHeader 
   
    struct{ 
    unsigned char Version:4; 
    unsigned char HeaderFlag:2; 
    unsigned char Reserved:2;//保留Bits位 
    }Info; 
    long nOther; 
    long Reserved; //保留4个字节 
    } DATAHEADER; 
    定义有一定的保留字段,供以后扩充使用。 

    6.变量在定义时赋初值,类析构时或程序退出时判断释放所有变量。 

    7.编码空间一定要充分预留,编码时注意可扩充性。 

    我认为不好的习惯: 

    1. 代码中是"+2","+4",而不是"+sizeof(short)","+sizeof(int)"。 

    2. filename[40],而不是filename[MAX_PATH]。 

    3. GDI资源使用完后不释放,位图、笔刷等用完后不Select出来。这样会将导致系统Gdi资源丢失或内存泄露。 

    4. 大量使用无符号型变量。无符号变量在判断时易造成错误,甚至死循环,尽量少用。 

    5. 使用malloc,free不使用new,delete,大量使用realloc。new,delete是规范的C++语法,通用性强,realloc易造成内存抖动。 

    6. #define square(x) (x)*(x) 
    宏的体应加括号,否则容易出问题,如1/square(x)将被替换1/(x)*(x)

0
相关文章