几种常见的程序设计中命名规则

几种常见的程序设计中命名规则,第1张

几种常见的程序命名规则

正确并形象地给函数、变量命名,不仅可以增加程序的可读性,也是程序员编程风格的一种反映。较好的命名习惯,可以有效的提高程序的可维护性。以下介绍几种常用的变量命名规则。

一、匈牙利命名法:广泛应用于Microsoft Windows这类环境中。

这种命名技术是由一位能干的 Microsoft 程序员查尔斯·西蒙尼(Charles Simonyi) 提出的。匈牙利命名法通过在变量名前面加上相应的小写字母的符号标识作为前缀,标识出变量的作用域,类型等。这些符号可以多个同时使用,顺序是先m_(成 员变 量),再指针,再简单数据类型,再其他。例如:m_lpszStr, 表示指向一个以0字符结尾的字符串的长指针成员变量。

匈牙利命名法关键是:标识符的名字以一个或者多个小写字母开头作为前缀;前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量的用途。

例如:bEnable, nLength, hWnd。

匈牙利命名法中常用的小写字母的前缀:

前缀 类型 描述

a Array 数组

b BOOL 布尔

by BYTE 无符号字符

c char 字符

cb Count of bytes 字节数

cr Color reference value 颜色值

cx,cy Count of x,y(short) 长度

dw DWORD 双字(无符号长整形)

f Flags 标志

fn Function 函数

g_ Global 全局的

h HANDLE 句柄

i Integer(int) 整数

l Long(long) 长整数

lp Long point 长指针

m_ Data member of a class 类的数据成员

n Short(short) 短整型

np Near point 短指针

p Point 指针

s String 字符串

sz Zero terminated string 以0结尾的字符串

tm Text metric 文本规则

u Unsigned int 无符号整数

ul Unsigned long(ULONG) 无符号长整数

w WORD 无符号短整数

x,y x,y coordinates(short) 坐标

v Void 空

有关项目的全局变量用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 变量的命名

变量的命名也采用下划线分割小写字母的方式命名。命名应当准确,不引起歧义,且长度适中。如:

int length

uint32 test_offset

单字符的名字也是常用的,如i, j, k等,它们通常可用作函数内的局部变量。tmp常用做临时变量名。

局部静态变量,应加s_词冠(表示static),如:

static int s_lastw

全局变量(尤其是供外部访问的全局变量),应加g_词冠(表示global),如:

void (* g_capture_hook)(void)

4.3 常量及宏的命名

采用下划线分割大写字母的方式命名,一般应以设备名作为前缀,

防止模块间命名的重复。如:

#define TIMER0_MODE_RELOAD2

#define TIMER2_COUNT_RETRIEVE(val)((uint16)(65536 - (val)))

当然,看作接口的宏可以按照函数的命名方法命名,例如:

#define timer2_clear() (TF2 = 0)

#define timer0_is_expired()(TF0)

据考察,没有一种命名规则可以让所有的程序员赞同,程序设计教科书一般都不指定命名规则。命名规则对软件产品而言并不是“成败悠关”的事,我们不要化太多精力试图发明世界上最好的命名规则,而应当制定一种令大多数项目成员满意的命名规则,并在项目中贯彻实施。

C语言的标识符一般应遵循如下的命名规则:

1、标识符必须以字母a~z、A~Z或下划线开头,后面可跟任意个(可为0)字符,这些字符可以是字母、下划线和数字,其他字符不允许出现在标识符中。

2、标识符区分大小写字母。

3、标识符的长度,c89规定31个字符以内,c99规定63个字符以内。

4、C语言中的关键字,有特殊意义,不能作为标识符。

5、自定义标识符最好取具有一定意义的字符串,便于记忆和理解。

常见命名规则

比较著名的命名规则,首推匈牙利命名法。这种命名方法,是由Microsoft程序员查尔斯·西蒙尼(Charles Simonyi)提出的。其主要思想是“在变量和函数名中加入前缀,以增进人们对程序的理解”。

匈牙利命名法关键是:标识符的名字,以一个或多个小写字母开头作为前缀;前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量的用途。例如:lpszStr,表示指向一个以\0结尾字符串(sz)的长指针(1p)变量。

一、编写目的

规范软件版本的命名,统一软件版本定义,方便软件升级与维护,降低沟通成本,提高工作效率。

二、适用范围

此命名规则适用于程序文件(.bin文件,.img文件,.hex文件等)命名以及程序内部的版本号命名。

三、内容描述

1 、软件版本命名规则

命名规则中的不同字段以下划线“_”做分隔符,字段名称本身不允许含有下划线“_”符号。

1)  主应用程序完整 bin 程序或 hex 文件

此程序常用于文件系统和驱动程序没有变化,只需要升级应用程序的情况,如大量的售后升级维护。

PCB_Product_ Option1 Option2...Option_Version_Date_CPU .Suffix

字段说明

PCBPCB名称可取其功能名,如MB、KEY&LED、AUDIO、VIDEO;分别表示,主板、按键、灯板、音频、视频板等。此为可选字段,一般为单片机程序使用,如果没有该字段则留空。

Product 产品型号 以项目启动时产品经理发布的为准,如F9164-TD

Option1Option2...OptionN

标识标准/非标准版本,如Standard为自主等。

Version版本号Vxx.xx.xx,如V0.0.1,V1.0.0,V1.0.1,V1.1.1,V2.0.0

Date日期,年月日,如20200101

CPUCPU型号信息。此为可选字段,一般为单片机程序使用,如果没有该字段则留空。

Suffix文件后缀,如img,bin,hex,zip,rar,tar.gz等

表格1常规字段说明

示例:

F9164-TD-Standard_V1.0.0_20200101.bin

F9164-TD-Standard_V1.0.0_20200101_T.bin(特单)

2 )主板版本

MB_Product-Option_Version_Date

示例:

MB_F9164-TD-Standard_V1.0.0_20200101

2 、软件版本号Version升级规则

1)、全新项目第一个正式发布的测试版本默认V1.0.0。

2)、从第二个正式测试版本开始,每次发布测试版本,必须升级软件版本号。

3)、相对上一版本的修改,

如果是少量bug修改,则升级最后一位版本号,如从V1.0.0改为V1.0.1;

如果涉及到功能增加、删减,或者协议小修改,或者数量众多的小修改,则升级中间一位版本号,如从V1.0.1改为 V1.1.1;

如果涉及到平台升级、协议增加、协议架构调整等重大修改,则升级第一位版本号,如从V1.1.1

改为 V2.0.0。

4)、发布给生产部的试产版本,如果和当前正在测试的版本有差异,同样需要在当前测试版本的基础上递增版本号。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/10982340.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-12
下一篇 2023-05-12

发表评论

登录后才能评论

评论列表(0条)

保存