资源_C++编码缩写命名

来源:互联网 发布:孙兴慜 知乎 编辑:程序博客网 时间:2024/04/30 14:11

在csdn上有很多关于命名规范的文档.

 

也看过有人抨击匈牙利表示法,抨击的人说的太绝对了.

对于内建类型使用匈牙利表示法命名变量,有积极意义. 合理的使用命名规范, 有利于程序的编码和调试

对于所有变量,都用命名规范,太教条.

 

看资料, MS的一个程序员提议使用匈牙利表示法, 被MS接受.

MS的代码中,也不完全遵守命名规范. 代码中有很多变量不采用命名规范.

例如:

    FLT     answer;
    double         tmp; //?
    unsigned int flags;
    REG1 wchar_t *ptr = (wchar_t *) nptr;
    char * cptr;
    int retval, len;
    int clen = 0;

 

同一代码.cpp, 命名规范也不相同。这和多人维护,每个人的风格不同有关系。

例如:

typedef struct {
    JET_COLUMNID            columnid;
    const void _far         *pvData;
    unsigned long             cbData; //?
    JET_GRBIT                grbit;
    unsigned long            ibLongValue;
    unsigned long            itagSequence;
    JET_ERR                    err;
} JET_SETCOLUMN;

INT cbData, 我倒. 这也许是原来的变量是BYTE, 后来变量长度不够,直接改成了INT, 但是变量名没改,导致的。

BOOL fxx, 这个理解不了. MS认为 BOOL 是flag的意思. 那float咋弄呢?

 

匈牙利命名的反对者,觉得附加的变量类型信息, 当变量类型改变后, 变量名称要全部修改,引起的麻烦.

VsIde或别的IDE都有字符串完整搜索,全部替换功能,这不是反对的理由.

 

每个人的命名规范都有不同,虽然都是从一个公认的命名规范中来的。

每个人都有自己的看法, 要不维护别人代码的时候,都有皱眉头的时候.

 

变量命名规范的合理使用,能提高编码效率. 最少自己工作的时候轻松些.

我自己用的内建类型命名规范整理如下:

 

类型    变量前缀    举例

BOOL    b    bRunning;

CHAR    c或ch    cXorSum

 

数组

//MS代码中CHAR[], BYTE[], 都用sz. 原本约定'/0'结尾的缓冲区才是sz, '/0'结尾的都是CHAR[]

CHAR[]    sz    szMsg[0x100]

BYTE[]    sz  szBuf[0x100]; //还是用sz容易辨别

 

指针

PCHAR    pc    pcBuf

PBYTE    puc   pucBuf

 

INT    i 或 n    nLenBuf

ULONG    ul    ulLen

DWORD    dw    dwLen

float    f    fSum

double    db    dbSum

STRUCT    tag    tagPersonalInfo

 LARGE_INTEGER liBigInt

类成员变量    m_    m_dwLenName