欢迎来到天天文库
浏览记录
ID:50555624
大小:134.50 KB
页数:12页
时间:2020-03-10
《C++语言程序设计代码规范.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、C++语言程序设计代码规范1命名规范本规范对变量、函数、类(结构)等的名称有严格的规定,在编码过程中务必遵守。1.1变量命名规范变量名称采用匈牙利命名法,即:完整的名称由“缀”和“主体”复合而成。“缀”用于指示变量的种类、数值类型、作用域等属性,由小写字符和下划线(_)组成,根据其附着在“主体”的位置分为前缀和后缀两种。“主体”表示变量的语义。整个变量名称的格式如下:<作用域前缀>[<指针缀>]<类型缀><主体><作用域后缀>下面详细论述。1.1.1作用域缀(前缀和后缀)作用域前缀处在整个变量名的最前面。
2、常用的作用域前缀为:g_表明这是一个全局变量。m_表明这是一个类成员变量。s_表明这是一个静态(static)变量。_(前缀)表明这是一个局部变量。参看后面详细解释。_(后缀)表明这是一个参数变量。参看后面详细解释。作用域后缀处在整个变量名的最后面。只有一种情况使用作用域后缀,就是函数的形参必须以作用域后缀结束。1.1.2指针缀如果一个变量是指针,则必须使用指针缀。指针缀使用字母p表示。以前,在DOS平台下有短指针和长指针的区别,有时称长指针为lp。在Win32平台下已经不存在这个区别了,所以统一使用p,
3、而不是lp。1.1.3类型缀类型缀由小写字符构成,用于描述变量的类型。注意:1.不要私自创造出各种各样的前缀。2.也没有必要在前缀中仔细区分一些细小的类型区别,那样会给代码维护工作带来额外的麻烦。常用的类型前缀为:n用于一般情况下的各种整数、浮点数、枚举类型,包括:(unsigned)int,(unsigned)long,和一些派生类型:UINT,ULONG,WORD,DWORD等。bbool类型p表示指针,在Win32平台下使用p,而不是lp。hWindowsAPI内部的各种HANDLE。szchar或
4、者char_w类型的数组或者字符串常量。wndWindows窗口,所有MFC窗口对象都以wnd缀开头。包括:CView,CDialog,CFrameWnd,CButton等。ptPOINT,CPointclrCOLORREF,其它用来表示颜色的数值类型dcCDC类penCPenbrushCBrushvectorstd::vectorliststd::list,CListmapstd::map,CMaparrayCArrayitstd::iteratorc,w,dw用于要求明确区分数据类型长度的情况下,如跨
5、平台的网络通讯,或磁盘读取。注意,尽量使用n作为前缀,而不是这些字符前缀。对于其他不在上面表中的结构、类等复杂数据类型,特别是不常使用的和不通用的,不使用前缀。例如:classPersonJonson;structDateTimeMyDt;在应用场合明确的情况下,例如:简单的局部变量,它的值类型前缀有时可以省略。具体见下面的例子。1.1.1复合前缀根据以上规则,变量根据它所在的作用域、类型、是否是指针,得到一个复合前缀。例如:charg_szFileName[_MAX_PATH];//全局字符串变量cha
6、r*g_pszFileName;//全局字符串指针变量:chars_szFileName[_MAX_PATH];//静态字符串变量char*s_pszFileName;//静态字符串指针变量:char_s_szFileName[_MAX_PATH];//局部静态字符串变量char*_s_pszFileName;//局部静态字符串指针变量:charm_szFileName[_MAX_PATH];//类字符串变量char*m_pszFileName;//类字符串指针变量:charms_szFileName[_
7、MAX_PATH];//类静态字符串变量char*ms_pszFileName;//类静态字符串指针变量:更多的例子,参见下面按照作用域讨论变量名一节。1.1.2主体用于描述变量的上下文意义。一般地,由首字母大写的一个或者多个单词构成,要求用英语作为描述语言。如:FileName,DateTime。这样就形成了由大小字母夹杂的单词串,这种写法常见于Windows风格的编码。注:全部单词小写,单词之间使用下划线分割,例如:file_name,date_time。这种写法常见于UNIX风格的编码。但是这种命名
8、方式就不能很好地区分缀和主体,所以在本规范中是不推荐的。单个的变量声明使用单数形式,不加任何冠词。例如:CFile_file;数组使用名词复数形式。CFile_files[3];一些容器类的作用类似于数组,所以也使用复数命名,例如:CArray_arrayFiles;std::list_listObjects;1.1按作用域分类讨论变量命名1.1.1参数变量函数的参数变量要求由后下划线结尾(见作用域缀一节)
此文档下载收益归作者所有