正确并形象地给函数、变量命名,不仅可以增加程序的可读性,也是程序员编程风格的一种反映。较好的命名习惯,可以有效的提高程序的可维护性。以下介绍几种常用的变量命名规则。
一、匈牙利命名法:广泛应用于MicrosoftWindows这类环境中。
这种命名技术是由一位能干的Microsoft程序员查尔斯·西蒙尼(CharlesSimonyi)提出的。匈牙利命名法通过在变量名前面加上相应的小写字母的符号标识作为前缀,标识出变量的作用域,类型等。这些符号可以多个同时使用,顺序是先m_(成员变量),再指针,再简单数据类型,再其他。例如:m_lpszStr,表示指向一个以0字符结尾的字符串的长指针成员变量。
匈牙利命名法关键是:标识符的名字以一个或者多个小写字母开头作为前缀;前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量的用途。
例如:bEnable,nLength,hWnd。
匈牙利命名法中常用的小写字母的前缀:
前缀类型描述
aArray数组
bBOOL布尔
byBYTE无符号字符
cchar字符
cbCountofbytes字节数
crColorreferencevalue颜色值
cx,cyCountofx,y(short)长度
dwDWORD双字(无符号长整形)
fFlags标志
fnFunction函数
g_Global全局的
hHANDLE句柄
iInteger(int)整数
lLong(long)长整数
lpLongpoint长指针
m_Datamemberofaclass类的数据成员
nShort(short)短整型
npNearpoint短指针
pPoint指针
sString字符串
szZeroterminatedstring以0结尾的字符串
tmTextmetric文本规则
uUnsignedint无符号整数
ulUnsignedlong(ULONG)无符号长整数
wWORD无符号短整数
x,yx,ycoordinates(short)坐标
vVoid空
有关项目的全局变量用g_开始,类成员变量用m_。
前缀类型例子
C类CDocument,CPrintInfo
m_成员变量m_pDoc,m_nCustomers
g_全局变量g_Servers
二、驼峰命名法:近年来越来越流行。
驼峰命名法,正如它的名称所表示的那样,指的是混合使用大小写字母来构成标识符的名字。其中第一个单词首字母小写,余下的单词首字母大写。
例如:
printEmployeePaychecks()
函数名中每一个逻辑断点都有一个大写字母来标记。
三、帕斯卡(Pascal)命名法:与驼峰命名法类似。
只不过驼峰命名法是第一个单词首字母小写,而帕斯卡命名法则是第一个单词首字母大写。因此这种命名法也有人称之为“大驼峰命名法”。
例如:
DisplayInfo()
UserName
都是采用了帕斯卡命名法。
在C#中,以帕斯卡命名法和骆驼命名法居多。
事实上,很多程序设计者在实际命名时会将驼峰命名法和帕斯卡结合使用,例如变量名采用驼峰命名法,而函数采用帕斯卡命名法。
四、下划线命名法。
下划线法是随着C语言的出现流行起来的,在UNIX/LIUNX这样的环境,以及GNU代码中使用非常普遍。
4.1函数的命名
函数名使用下划线分割小写字母的方式命名:
设备名_ *** 作名()
*** 作名一般采用:谓语(此时设备名作为宾语或者标明 *** 作所属的模块)或者谓语+宾语/表语(此时设备名作为主语或者标明 *** 作所属的模块)等形式,如:
tic_init()
adc_is_busy()
uart_tx_char()
中断函数的命名直接使用设备名_isr()的形式命名,如:
timer2_isr()
4.2变量的命名
变量的命名也采用下划线分割小写字母的方式命名。命名应当准确,不引起歧义,且长度适中。如:
intlength
uint32test_offset
单字符的名字也是常用的,如i,j,k等,它们通常可用作函数内的局部变量。tmp常用做临时变量名。
局部静态变量,应加s_词冠(表示static),如:
staticints_lastw
全局变量(尤其是供外部访问的全局变量),应加g_词冠(表示global),如:
void(*g_capture_hook)(void)
4.3常量及宏的命名
采用下划线分割大写字母的方式命名,一般应以设备名作为前缀,
防止模块间命名的重复。如:
#defineTIMER0_MODE_RELOAD2
#defineTIMER2_COUNT_RETRIEVE(val)((uint16)(65536-(val)))
当然,看作接口的宏可以按照函数的命名方法命名,例如:
#definetimer2_clear()(TF2=0)
#definetimer0_is_expired()(TF0)
据考察,没有一种命名规则可以让所有的程序员赞同,程序设计教科书一般都不指定命名规则。命名规则对软件产品而言并不是“成败悠关”的事,我们不要化太多精力试图发明世界上最好的命名规则,而应当制定一种令大多数项目成员满意的命名规则,并在项目中贯彻实施。
分区是把一个硬盘分成几个区来存储文件。像C盘,D盘都分区分出来的。
什么是分页?
无论你的NT服务器的内存有多大,它总是显得不够充足。当物理RAM从低端开始运行时,Windows NT使用了分页文件Pagefile.sys。为了运行不同的进程和应用程序,Pagefile.sys给物理内存分配了一些空间。在这些空间内允许交换数据页。
默认分页文件在C盘根目录下,这个文件的大小与你的虚拟内存是一样大的,不以删除。一般建议将虚拟内存改在D盘。减少对系统分区的占用,也减少对系统分区的频繁读写。
分段?
程序分段的好处。cpu中的段寄存器中保存了段址(base)和偏移值的上限(limit)。段址:有效地址 中,如果有效地址大于limit,便会引发异常。这样就可以限制程序不能范围当前段外的数据,不能访问其他程序的数据。总之就是不能访问它不能访问的数据。
面向对象的好处。对象就是一块连续的内存中的数据吧。这点跟上面一点类似。通过限制访问,就做到了private的效果吧。
分段与分页:
(1)内存分段和内存分页一样都是一种内存管理技术,分段是为了权限保护,分页是为了虚拟内存.
(2)分段后,程序员可以定义自己的段,各段有独立的地址空间,象进程的地址空间互相独立一样.
(3)同一个类的实例分配在一个段中,只有该类的方法可以访问,如果其他类的方法去访问,会因为段保护而出错.可以从硬件上实现类的数据保护和隐藏
后面的分段来自网络,不知道对不对?这是计算机 *** 作系统这门课里讲的内容。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)