首页 > 编程知识 正文

程序的三种基本结构是,系统命名法规则及举例

时间:2023-05-05 15:09:49 阅读:114245 作者:4326

正确命名函数和变量,不仅提高程序的可读性,也是程序设计风格的反映。 良好的命名习惯可以有效地提高程序的可维护性。 以下是一些常见的变量命名约定。

一、匈牙利命名法:广泛应用于微软windows等环境。

这项命名技术是由微软一位有能力的程序员——查里斯赛门铁伊(QL DDR )——提出的。 匈牙利命名法通过在变量名前加上对应的小写符号标识作为前缀,识别变量的范围、类型等。 这些符号可以同时使用多个。 顺序首先是m_ (成员变量)、指针、简单的数据类型和其他。 例如,m_lpszStr表示指向以0个字符结尾的字符串的长指针成员变量。

匈牙利命名方法的关键是以标识符的名称以一个或多个小写字母开头为前缀。前缀后面跟有指示变量目标的大写单词或单词组合。

例如,bEnable、nLength、hWnd。

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

前缀类型说明

a阵列序列

布尔格

by BYTE无符号字符

c char文字

字节计数

Cr颜色参考值颜色值

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

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

f Flags标志

fn函数

g_ Global全局的

h HANDLE句柄

I整数(int )整数

长整数

LP长点长指针

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

n短整数

np Near point短指针

p Point指针

s String字符串

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

TM文本度量文本规则

无符号整数

无统一长(ulong )符号长整数

w WORD无符号短整数

x,y x,y代码(short )坐标

v Void空

项目的全局变量以g_开始,类成员变量以m_开始。

前缀类型示例

类CDocument,CPrintInfo

m_成员变量m_pDoc,m_nCustomers

g_全局变量g_Servers

二、驼峰命名法:近年来越来越流行。

驼峰命名法是由大小写混合构成标识符的名称,如其名称所示。 第一个单词以小写字母开头,剩下的单词以大写字母开头。

例如:

printEmployeePaychecks (

函数名称中的每个逻辑断点都有一个大写字母。

三、帕斯卡(Pascal )命名法:类似驼峰命名法。

但是,驼峰命名法中第一个单词的首字母是小写,帕斯卡命名法中第一个单词的首字母是大写。 因此,也有人把这种命名法称为“大驼峰命名法”。

例如:

显示信息(;

用户名称

都采用帕斯卡命名法。

在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 int s_lastw;

全局变量,特别是用于外部访问的全局变量,必须使用g_前缀(表示global ),如下所示:

void(g_capture_hook ) ) void;

4.3命名常量和宏

使用下划线拆分大写字符进行命名时,通常使用设备名称作为前缀

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

#define TIMER0_MODE_RELOAD 2

# define timer2_ count _ retrieve (val ) ) uint16 ) ) 65536-(val ) )

当然,可以通过以下函数命名方法命名被视为接口的宏:

#define timer2_clear () (TF2=0) ) ) ) ) ) ) )。

#define timer0_is_expired () (TF0 ) ) ) ) ) ) )。

经考察,没有所有程序员都能认同的命名规则,编程教科书一般不指定命名规则。 命名约定对软件产品来说并不是“成败左右”。 我们不需要太多精力去发明世界上最好的命名规则,必须制定让很多项目成员满意的命名规则,并在项目中贯彻实施。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。