title: 变量名的命名法.md
toc: true
date: 2021-12-22 09:25:00


变量名的命名法

January 27, 2021 @cloud xu

大家好,我是络羊。

今天来讲讲那些变量名命名法。

众所周知

每个人对变量命名都有自己的一套方法。

在此,这里仅仅讨论几种流传较为广泛的命名法。


匈牙利命名法

匈牙利命名法(Hungarian Notation),是由1972年至1981年在施乐公司工作的程序员查尔斯.西蒙尼(Charles.Simony)发明的,因其祖籍在匈牙利而得名。

基本规则是:变量名=属性+类型+对象描述,其中每一个对象的名称都要求有明确含义,可以是对象名字全程或者一部分,同是要基于容易记忆理解的原则。

使用规范如下:

属性部分

类型部分

描述部分

变量定义的这些描述符号可以多个同时使用,顺序一般是m_,再指针,再简单数据类型,再其它。比如:

hwnd: h类型描述,表示句柄;wnd是变量的对象描述,表示窗口,所以hwnd表示窗口句柄。

pfnEatApple: pfn是类型描述,表示指向函数的指针;EatApple是变量对象描述,所以pfnEatApple表示指向EatApple函数的函数指针变量。

m_lpszStr: m_表示是成员变量;l表示长整型;p表示指针;sz表示的是字符串;Str是对象描述;所以m_lpszStr的含义就是表示指向一个字符串的长指针成员变量。

而以上

这些并不是它发扬光大的原因

真正的原因是:

这人当了微软的总设计师!

但正如贾老师所言:“历史的余孽终究会被扫进历史的垃圾桶的。”

匈牙利命名法在如今越来越被人们所诟病

编译器自带的类型检查让它的特性(能帮助程序员快速了解变量的数据类型)的作用不在像以前一样不可缺少

而它自身命名法所带来的如冗余和数据类型的弊病则更加明显

但是

有一部人依旧在挣扎


2.驼峰命名法(小驼峰命名法)

骆驼式命名法(CamelCase),又称驼峰命名法。正如名称CamelCase所表示的形式,是指混合使用大小写字母来构成变量和函数的名字。

是以单个单词或多个单词组成变量或者函数的唯一标识符时,第一个单词以小写字母开始,第二个单词以及后面的每一个单词的首字母大写,例如 myFirstName、 myLastName,studentName等。

需要注意的是这些单词组成的标识符必须具有一定的意义,让人在看到这个变量的时候就大概知道这个变量是用来记录什么的


3.Pascal命名法(大驼峰命名法)

和小驼峰命名法类似,就是把变量名称的第一个字母也大写。如:DataBaseUser,GetUserName, StudentsName

4.下划线命名法

下划线命名法变量名和函式名称是由二个或二个以上单词连结在一起,每个单词用下划线隔开并且单词都是小写。

如:print_employee,student_name,list_name等


参考文献

变量的命名方法_bailang_zhizun的博客-CSDN博客_变量命名法