现有的命名方法总结
来源:互联网 发布:钟镇涛破产原因 知乎 编辑:程序博客网 时间:2024/05/22 10:56
现有的命名方法总结
经查阅资料,现在将在编程中用到的几种常用的命名方法总结如下。
目前,业界共三种是非常经典的命名法则:匈牙利命名法、驼峰命名法、帕斯卡命名法。
1. 匈牙利命名法:
- 简介
广泛应用于象 Microsoft Windows 这样的环境中。 Windows 编程中用到的变量(还包括宏)的命名规则匈牙利命名法,这种命名技术是由一位能干的 Microsoft 程序员查尔斯· 西蒙尼(Charles Simonyi) 提出的。匈牙利命名法通过在变量名前面加上相应的小写字母的符号标识作为前缀, 标识出变量的作用域,类型等。这些符号可以多个同时使用,顺序是先 m_(成员变量),再指针,再简单数据类型,例如:m_lpszStr, 表示指向一个以 0 字符结尾的字符串的长指针成员变量。
匈牙利命名法关键是:标识符的名字以一个或者多个小写字母开头作为前缀;前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量的用途。
- 变量属性
属性部分:
g_ 全局变量
c_ 常量
m_ c++类成员变量
s_ 静态变量
类型部分:
数组 a
指针 p
函数 fn
无效 v
句柄 h
长整型 l
布尔 b
浮点型(有时也指文件) f
双字 dw
字符串 sz
短整型 n
双精度浮点 d
计数 c(通常用cnt)
字符 ch(通常用c)
整型 i(通常用n)
字节 by
字 w
实型 r
无符号 u
描述部分:
最大 Max
最小 Min
初始化 Init
临时变量 T(或Temp)
源对象 Src
目的对象 Dest
- 举例
hwnd : h 是类型描述,表示句柄,wnd是变量对象描述,表示窗口,所以 hwnd 表示窗口句柄;
pfnEatApple : pfn 是类型描述,表示指向函数的指针, EatApple 是变量对象描述,所以它表示指向 EatApple 函数的函数指针变量。
g_cch : g_ 是属性描述,表示全局变量,c和ch分别是计数类型和字符类型,一起表示变量类型,这里忽略了对象描述,所以它表示一个对字符进行计数的全局变量。
2. 驼峰命名法
- 简介
骆驼式命名法(Camel-Case)又称驼峰命名法,是电脑程式编写时的一套命名规则(惯例)。正如它的名称CamelCase所表示的那样,是指混合使用大小写字母来构成变量和函数的名字。程序员们为了自己的代码能更容易的在同行之间交流,所以多采取统一的可读性比较好的命名方式。
- 举例
骆驼式命名法的命名规则可视为一种惯例,并无绝对与强制,为的是增加识别和可读性。
小驼峰法:
变量一般用小驼峰法标识。驼峰法的意思是:除第一个单词之外,其他单词首字母大写。譬如:
int myStudentCount;变量myStudentCount第一个单词是全部小写,后面的单词首字母大写。
大驼峰法:
相比小驼峰法,大驼峰法把第一个单词的首字母也大写了。常用于类名,函数名,属性,命名空间。譬如:
public class DataBaseUser;
3.帕斯卡命名法
- 简介
当变量名和函式名称是由二个或二个以上单字连结在一起,而构成的唯一识别字时,用以增加变量和函式的可读性。
单字之间不以空格断开或连接号(-)、底线(_)连结,第一个单字首字母采用大写字母;后续单字的首字母亦用大写字母,每一个单字的首字母都采用大写字母的命名格式,被称为“Pascal命名法”,源自于Pascal语言的命名惯例,也有人称之为“大驼峰式命名法”(Upper Camel Case),为驼峰式大小写的子集。
- 举例
例如:FirstName、LastName。
与驼峰命名法类似,二者的区别在于:驼峰命名法是首字母小写,而帕斯卡命名法是首字母大写。
- 现有的命名方法总结
- 不同语言根据现有DLL创建lib文件的方法总结
- 总结现有的APP推广渠道
- visiual studio添加现有文件夹的方法
- 命名规范的总结
- 命名方法与匿名方法总结(转载)
- 病毒的命名方法
- 正确的命名方法
- 触发器的命名方法
- 编程的命名方法
- 版本号的命名方法
- 基于DOM现有的insertBefore()方法封装一个insertAfter()方法
- 现有虚拟机总结
- 项目现有框架总结
- 面向对象的命名总结
- 软件开发的方法-分析各种现有的隐喻(ZT)
- java使用现有的类库的排序方法
- 将现有工程导入到eclipse的方法
- MySQL - Entity : The value for column 'IsPrimaryKey' in table 'TableDetails' is DBNull
- 排序算法总结
- echarts
- 面向对象上
- TCP并发服务器模型(一)
- 现有的命名方法总结
- RT3070wifi模块STA模式移植
- Java Web开发中路径问题小结
- 实时SLAM的未来及与深度学习的比较The Future of Real-Time SLAM and “Deep Learning vs SLAM”
- react.js-10-渐隐动画
- springmvc后台返回json出现的一系列问题
- Android 混淆代码总结
- 流式大数据处理的三种框架:Storm,Spark和Samza
- UESTC 1144 Big Brother 二分图、最大匹配