三种命名规则之-----匈牙利命名规则

匈牙利命名法是微软推广的一种关于变量、函数、对象、前缀、宏定义等各种类型的符号的命名规范。匈牙利命名法的主要思想是:在变量和函数名中加入前缀以增进人们对程序的理解。

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

前缀 类型 描述
a Array 数组
b BOOL (int)
by Unsigned Char (Byte) 无符号字(字节)
c Char 字符(字节)
cb Count of bytes 字节数
cr Color reference value 颜色(参考)值
cx Count of x (Short) x的集合(短整数)
dw DWORD(unsigned long) 双字(无符号长整数)
f Flags (usually multiple bit values) 标志(一般是有多位的数值)
fn Function 函数
g_ global 全局的
h Handle 句柄
i Integer 整数
l Long 长整数
lp Long pointer 长指针
m_ Data member of a class 一个类的数据成员
n Short int 短整数
p Pointer 指针
s String 字符串
sz Zero terminated String 以0结尾的字符串
tm Text metric 文本规则
u Unsigned int 无符号整数
ul Unsigned long (ULONG) 无符号长整数
w WORD (unsigned short) 无符号短整数
x,y x, y coordinates (short) 坐标值/短整数
v void

有关项目的全局变量用g_开始,类成员变量用m_,局部变量若函数较大则可考虑用l_用以显示说明其是局部变量。

前缀 类型 例子
g_ 全局变量 g_Servers
C 类或者结构体 CDocument,CPrintInfo
m_ 成员变量 m_pDoc,m_nCustomers

|VC常用前缀列表:

前缀 类型 描述 例子
ch char 8位字符 chGrade
ch TCHAR 16位UNICODE类型字符 chName
b BOOL 布尔变量 bEnabled
n int 整型(其大小由操作系统决定) nLength
n UINT 无符号整型(其大小由操作系统决定) nLength
w WORD 16位无符号整型 wPos
l LONG 32位有符号整型 lOffset
dw DWORD 32位无符号整型 dwRange
p * Ambient memory model pointer 内存模块指针,指针变量 pDoc
lp FAR* 长指针 lpDoc
lpsz LPSTR 32位字符串指针 lpszName
lpsz LPCSTR 2位常量字符串指针 lpszName
lpsz LPCTSTR 32位UNICODE类型常量指针 lpszName
h handle Windows对象句柄 hWnd
lpfn (*fn)() 回调函数指针 Callback Far pointer to CALLBACK function lpfnAbort

可是在不论什么情况下,都硬性规定使用匈牙利命名法是迂腐的。尤其是 Unix 编程,在使用没有变量名、keyword自己主动补齐功能的编辑器,如 vi 下,去敲入大写和小写混合的变量名是痛苦的。事实上仅仅要注意两个原则:1) 含义清晰,不易混淆; 2) 不和其他模块、系统API的命名空间相冲突就可以。
1.有意识的为变量名、宏名加上本模块的keyword,就不至于和其他模块、系统API的命名空间相冲突;比如: 宏的名称过短,如:DEBUG; 或_DEBUG,非常可能和别的模块,系统模块相冲突;
2.局部变量尤其是循环变量外,使用约定俗成的 i,j,k ,没有问题;
3.宏、常量、枚举enum,所实用大写字母;
4.全局变量加上前缀 “g”,后面跟上首字母大写的单词;

三种命名规则之-----匈牙利命名规则相关推荐

  1. 三种编程命名规则:驼峰命名法,帕斯卡命名法,匈牙利命名法

    文章目录 驼峰命令法(Camel) 匈牙利命名法(Hungarian) 帕斯卡(Pascal)命名法 命名的基本原则 变量名的命名规则 函数的命名规范 函数参数命名规范 三种流行的命名法则 目前,业界 ...

  2. [转]三种编程命名规则:驼峰命名法,帕斯卡命名法,匈牙利命名法

    三种流行的命名法则 目前,业界共有四种命名法则:驼峰命名法.匈牙利命名法.帕斯卡命名法和下划线命名法,其中前三种是较为流行的命名法. 驼峰命令法(Camel):  也称骆驼式命名法正如它的名称所表示的 ...

  3. 四种编程命名规则:驼峰命名法,帕斯卡命名法,匈牙利命名法,下划线命名法

    人们交流靠各种语言,每行都有每行的所谓的"行话".程序员也不例外,众所周知,程序员都是用代码进行交流的.那么除了在代码中的注释之外, 程序员如何读懂别人的程序呢? 当然,程序员之间 ...

  4. 四种常用的命名规则:帕斯卡命名法、驼峰命名法、下划线命名法、匈牙利命名法

    帕斯卡命名法.驼峰命名法.下划线命名法.匈牙利命名法 其中前三种用的比较多. 1,帕斯卡命名法(Pascal) 程序代码示例: ShowMessage(); string PassWord; 单字之间 ...

  5. 【日常学习】命名规则 - 驼峰命名法、帕斯卡命名法、匈牙利命名法、下划线命名法

    变量如果随便起名字,不仅其他工作人员难以交接,自己看着也非常混乱,如果按照命名规则进行管理,代码可读性会大大提升 文章参考博客:局外人Lee - 三种编程规则:驼峰命名法.帕斯卡命名法.匈牙利名 f- ...

  6. 骆驼命名法 ,匈牙利命名法 和 帕斯卡命名法

    常用命名法:骆驼命名法,匈牙利命名法和帕斯卡命名法 http://xp9802.iteye.com/blog/2111721 骆驼式命令法(Camel): 驼峰法 小驼峰法: 从第个单词开始首字母大写 ...

  7. 转载——三种编程命名规范(匈牙利命名法、驼峰式命名法、帕斯卡命名法)...

    1 . 匈牙利命名: 开头字母用变量类型的缩写,其余部分用变量的英文或英文的缩写,要求单词第一个字母大写. 比如: int iMyAge; "i"是int类型的缩写: char c ...

  8. 三种编程命名规范(匈牙利命名法、驼峰式命名法、帕斯卡命名法)

    1 . 匈牙利命名: 开头字母用变量类型的缩写,其余部分用变量的英文或英文的缩写,要求单词第一个字母大写. ex: int iMyAge; "i"是int类型的缩写: char c ...

  9. mfc编程淘汰了吗_四种基本的编程命名规范(匈牙利命名法、驼峰式命名法、帕斯卡命名法、下划线命名法)...

    匈牙利命名法 匈牙利命名法是早期的规范,由微软的一个匈牙利人发明的,是 IDE 还十分智障的年代的产物.那个年代,当代码量很多的时候,想要确定一个变量的类型是很麻烦的,不像现在 IDE 都会给提示,所 ...

最新文章

  1. SAP PM 入门系列15 - IW41 维护订单确认
  2. 要获得“机器学习或数据科学”的工作,到底选哪种编程语言更好?
  3. 线程的状态、进程的状态
  4. C语言的指针函数与函数指针
  5. 最终章 | TensorFlow战Kaggle“手写识别达成99%准确率
  6. 研发工程师如何转型项目经理
  7. 逻辑回归分类python实例_Python逻辑回归原理及实际案例应用
  8. Log4j2发新版本2.16.0,加固漏洞防御,不想被攻击,就赶快更新啦!
  9. python oop 继承_关于oop:使类数据在python中可继承的正确方法是什么?
  10. 【IMX6ULL笔记】--内核底层驱动初步探究
  11. 计算机应用基础教案 电子书,计算机应用基础教案(全套)-20210511075659.pdf-原创力文档...
  12. 内存卡数据恢复,如何从内存卡恢复数据
  13. 计算机科学类期刊排名,计算机学术期刊排名:Computer Science Journal Ranki
  14. 幽暗镰刀:隐私安全下的收割者们
  15. 《你见,或者不见我》
  16. 微信要求的android版本是多少,微信发布7.0.15安卓正式版:微信号可以更改,但必须满足条件...
  17. 华为服务器批量修改bmc地址,华为服务器批量修改bmc地址
  18. 亚马逊高级产品总监徐霄鹏:如何对不同用户群体采取差异化运营
  19. PyTorch深度学习(23)Transformer及网络结构ViT
  20. Linux--Linux服务器空间占满解决办法

热门文章

  1. HTML5 网页 背景图片设置的方法
  2. Twisted 入门 教程
  3. Ubuntu 18.04 LTS 安装教程
  4. 数据可视化工具整理(仅仅是LIST,会给出详细的关于个例的使用)
  5. 关于Python错误:“TypeError: Dog() takes no arguments”
  6. 工程概论I--优享家庭蔬菜-虚拟大学生创新创业项目计划书
  7. SpringCloud链路追踪SkyWalking-第四章-自定义链路追踪
  8. 手把手教你在Hexo中使用Github贡献日历(以Next主题为例)
  9. 关于Docker逃逸
  10. Tomat安装之后http://localhost:8080无法访问最全解决方案