匈牙利命名的简介与规范 匈牙利命名

匈牙利命名简介

匈牙利命名起初是由匈牙利的一名程序员Charles Simonyi使用的,因为其在微软工作几年,于是通过微软的产品和文档资料向外界传播开来。这种命名的出发点是把变量名按:

属性+类型+对象描述的格式组合起来的。以使程序员作变量时对变量的类型和其它属性有直观的了解。

匈牙利命名的规则

①、变量的命名规则要求用“匈牙利法则”。即开头字母用变量的类型,其余部分用变量的英文意思或其英文意思的缩写, 尽量避免用中文的拼音,要求单词的第一个字母应大写。

即:变量名=变量类型+变量的英文意思(或缩写)

对非通用的变量,在定义时加入注释说明,变量定义尽量可能放在函数的开始处。

见下表:

基本类型

开头标示

实例

BOOL(bool)

b

bInstall

BYTE(byte)

by

byData

short(int)

n

nCount

LONG(long)

l

lSum

CHAR(char)

c

cLetter

FLOAT(float)

f

fDistance

DOUBLE(double)

d

dData

VOID(void)

v

vVariant

unsignedint(WORD)

w

wCount

unsignedlong(DWORD)

dw

dwProcID

HANDLE(HINSTANCE)

h

hHandle

LPCSTR/LPCTSTR/string/Cstring

str

strName

字符串(以0结尾的)

sz

szFileName

②、指针变量命名的基本原则为:

对一重指针变量的基本原则为:

“p”+变量类型前缀+命名

如:

int*pPoint;

int**ppPoint;

. . .

多重指针以此类推。

③、全局变量用 g_开头,即:变量名=g_+ 变量

类型+变量的英文意思(或缩写)

如:intg_nCount=0;

④、静态变量用s_开头, 即:变量名=s_+

变量类型+变量的英文意思(或缩写)

如:static ints_nCount;

⑤、成员变量用 m_开头,即:变量名=m_+变量类

型+变量的英文意思(或缩写)

如:intm_nLineCount;

⑥ 、对const的变量要求在变量的命名规则前加入c_,即:c_+变量命名规则

如:constchar*c_szFileName;

⑦、对枚举类型(enum)中的变量,要求用枚举变量或其缩写做前缀。并且要求用大

写。

如:enumcmEMDAYS

{

EM DAYS_M O N DAY;

EMDAYS_TUESDAY;

……

};

⑧、对struct、union、class 变量的命名要求定义的类型用大写。并要加上前缀,其内

部变量的命名规则与变量命名规则一致。

结构一般用 S开头

如:structScmNPoin

{

intnX;// 点的X 位置

intnY;//点的Y 位置

};

联合体一般用 U开头

如:unionUcmLPoint

{

匈牙利命名的简介与规范 匈牙利命名

longlX;

longlY;

}

类一般用 C开头

如:

classCcmFPoint

{

public:

floatfPoint;

};

对一般的结构应该定义为类模板,为以后的扩展性考虑

如:

template

classCcmTVector3d

{

public:

TYPEx,y,z;

};

⑨、对常量(包括错误的编码)命名,要求常量名用大写,常量名用英文表达其意思。

如:#defineCM_FILE_NOT_FOUNDCMMAKEHR(0X20B)其中 CM表示类别。

2 、函数的命名规范:

函数的命名应该尽量用英文表达出函数完成的功能。遵循动宾结构的命名法则,函数名中动词在前, 并在命名前加入函数的前缀,函数名的长度不得少于8 个字母。

例如:

longcmGetDeviceCount(……);

3 、函数参数规范:

①、参数名称的命名参照变量命名规范。

②、为了提高程序的运行效率,减少参数占用的堆栈,传递大结构的参数,一律采用指针或引用方式传递。

③、为了便于其他程序员识别某个指针参数是入口参数还是出口参数,同时便于编译器检查错误,应该在入口参数前加入const 标志。如:

……cmCopyString(constchar*c_szSource,char*szDest)

4 、引出函数规范:

对于从动态库引出作为二次开发函数公开的函数,为了能与其他函数以及 Windows 的函数区分,采用类别前缀+基本命名规则的方法命名。例如:在对动态库中引出的一个图象编辑的函数定义为imgFunctionname( 其中img为image缩写)。

现给出三种库的命名前缀:

①、对通用函数库,采用cm 为前缀。

②、对三维函数库,采用 vr为前缀。

③、对图象函数库,采用 img为前缀。

对宏定义,结果代码用同样的前缀。

5 、文件名(包括动态库、组件、控件、工程文件等)的命名规范:

文件名的命名要求表达出文件的内容,要求文件名的长度不得少于 5 个字母,严禁使用象file1,myfile 之类的文件名。

三、注释规范:

1 、函数头的注释

对于函数,应该从“功能”,“参数”,“返回值”、“主要思路”、“调用方法”、“日期”六

个方面用如下格式注释:

// 程序说明开始

//================================================================//

//功能:从一个String中删除另一个 String。

//参数:strByDelete,strToDelete

//(入口)strByDelete:被删除的字符串(原来的字符串)

//(出口)strToDelete:要从上个字符串中删除的字符串。

//返回:找到并删除返回1,否则返回 0。(对返回值有错误编码的要

//求列出错误编码)。

//主要思路:本算法主要采用循环比较的方法来从strByDelete 中找到

//与strToDelete相匹配的字符串,对多匹配strByDelete

//中有多个strToDelete子串)的情况没有处理。请参阅:

//书名......

//调用方法:......

//日期:起始日期,如:2000/8/21.9:40-- 2000/8/23.21:45

//================================================================/

函数名(……)

// 程序说明结束

①、对于某些函数,其部分参数为传入值,而部分参数为传出值,所以对参数要

详细说明该参数是入口参数,还是出口参数,对于某些意义不明确的参数还要做详细说明(例

如:以角度作为参数时,要说明该角度参数是以弧度(PI ), 还是以度为单位),对既是入口又是出口的变量应该在入口和出口处同时标明。等等。

②、函数的注释应该放置在函数的头文件中,在实现文件中的该函数的实现部分

应该同时放置该注释。

③、在注释中应该详细说明函数的主要实现思路、特别要注明自己的一些想法,

如果有必要则应该写明对想法产生的来由。对一些模仿的函数应该注释上函数的出处。

④、在注释中详细注明函数的适当调用方法,对于返回值的处理方法等。在注释

中要强调调用时的危险方面,可能出错的地方。

⑤、对日期的注释要求记录从开始写函数到结束函数的测试之间的日期。

⑥、对函数注释开始到函数命名之间应该有一组用来标识的特殊字符串。

如果算法比较复杂,或算法中的变量定义与位置有关,则要求对变量的定义进行图解。

对难以理解的算法能图解尽量图解。

2 、变量的注释:

对于变量的注释紧跟在变量的后面说明变量的作用。原则上对于每个变量应该注释,但对于意义非常明显的变量,如:i,j 等循环变量可以不注释。

例如: longlLineCount// 线的根数。

3 、文件的注释:

文件应该在文件开头加入以下注释:

/////////////////////////////////////////////////////////////////////

//工程:文件所在的项目名。

//作者:**,修改者:**

//描述:说明文件的功能。

//主要函数:…………

//版本:说明文件的版本,完成日期。

//修改:说明对文件的修改内容、修改原因以及修改日期。

//参考文献:......

/////////////////////////////////////////////////////////////////////

为了头文件被重复包含要求对头文件进行定义如下:

#ifndef__FILENAME_H__

#define__FILENAME_H__

其中FILENAME为头文件的名字。

4、其他注释:

在函数内我们不需要注释每一行语句。但必须在各功能模块的每一主要部分之前添加块注释,注释每一组语句,在循环、流程的各分支等,尽可能多加以注释。

其中的循环、条件、选择等位置必须注释。

对于前后顺序不能颠倒的情况,建议在注释中增加序号。

例如:

在其他顺序执行的程序中,每隔 3—5 行语句,必须加一个注释,注明这一段语句所组成的小模块的作用。对于自己的一些比较独特的思想要求在注释中标明。

  

爱华网本文地址 » http://www.413yy.cn/a/25101012/123635.html

更多阅读

虫草的功效与吃法 虫草的作用与功效

虫草的功效与吃法——简介冬虫夏草(学名:Cordyceps sinensis),又名中华虫草,又称为夏草冬虫,简称虫草。是中国传统的名 冬虫夏草贵中药材,它是由肉座菌目麦角菌科虫草属的冬虫夏草菌寄生于高山草甸土中的蝠蛾幼虫,使幼虫僵化,在适宜条件下,

竹叶的功效与作用简介 竹叶的功效与作用

养生堂 >> 食物营养 >> 浏览文章竹叶的功效与作用简介-孕妇可以能喝竹叶茶吗来源:互联网  点击: 2257竹叶清热除烦 生津利尿 改善睡眠 抗癌,孕妇可以适量喝点竹叶茶,专家认为喜欢喝茶的孕妇可以适量喝点绿茶。竹叶有抗氧化、抗衰老、

犹记红楼梦中人:红楼32女子的简介与结局

金陵十二钗林黛玉林如海与贾敏的独女。因父母先后去世,被贾母接来荣国府抚养。虽寄人篱下,但她生性孤傲,天真率直,宝玉真心相爱,却终不能走到一起。最后,林黛玉泪尽而逝。薛宝钗薛姨妈的女儿,家中拥有百万之富。容貌美丽,举止娴雅。她恪守封

中药牛蒡的功效与作用简介 炒牛蒡子的作用与功效

养生堂 >> 食物营养 >> 浏览文章中药牛蒡的功效与作用简介-牛蒡的做法吃法来源:互联网  点击: 785久服轻身耐老的牛蒡中药牛蒡的功效与作用简介牛蒡为菊科牛蒡属二年生草本植物。生命力极其顽强,即使受了致命的摧折仍能顽强地生长,它的

光动力疗法的简介与优缺点 扁平疣光动力综合疗法

简介:光动力疗法( Photodynamic Therapy , PDT )原称光辐射疗法( PhotoradiationTherap , PRT )、光化学疗法( Photochemical Therapy , PCT),它是利用光动力反应进行疾病诊断和治疗的一种新技术。在临床上,光动力疗法通常仅指光动力治疗,而将光

声明:《匈牙利命名的简介与规范 匈牙利命名》为网友鎶爆耐迪分享!如侵犯到您的合法权益请联系我们删除