三种命名规则之-----匈牙利命名规则
三种命名规则之-----匈牙利命名规则
匈牙利命名法是微软推广的一种关于变量、函数、对象、前缀、宏定义等各种类型的符号的命名规范。匈牙利命名法的主要思想是:在变量和函数名中加入前缀以增进人们对程序的理解。
匈牙利命名法关键是:标识符的名字以一个或者多个小写字母开头作为前缀;前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量的用途。
前缀 | 类型 | 描述 |
---|---|---|
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”,后面跟上首字母大写的单词;
三种命名规则之-----匈牙利命名规则相关推荐
- 三种编程命名规则:驼峰命名法,帕斯卡命名法,匈牙利命名法
文章目录 驼峰命令法(Camel) 匈牙利命名法(Hungarian) 帕斯卡(Pascal)命名法 命名的基本原则 变量名的命名规则 函数的命名规范 函数参数命名规范 三种流行的命名法则 目前,业界 ...
- [转]三种编程命名规则:驼峰命名法,帕斯卡命名法,匈牙利命名法
三种流行的命名法则 目前,业界共有四种命名法则:驼峰命名法.匈牙利命名法.帕斯卡命名法和下划线命名法,其中前三种是较为流行的命名法. 驼峰命令法(Camel): 也称骆驼式命名法正如它的名称所表示的 ...
- 四种编程命名规则:驼峰命名法,帕斯卡命名法,匈牙利命名法,下划线命名法
人们交流靠各种语言,每行都有每行的所谓的"行话".程序员也不例外,众所周知,程序员都是用代码进行交流的.那么除了在代码中的注释之外, 程序员如何读懂别人的程序呢? 当然,程序员之间 ...
- 四种常用的命名规则:帕斯卡命名法、驼峰命名法、下划线命名法、匈牙利命名法
帕斯卡命名法.驼峰命名法.下划线命名法.匈牙利命名法 其中前三种用的比较多. 1,帕斯卡命名法(Pascal) 程序代码示例: ShowMessage(); string PassWord; 单字之间 ...
- 【日常学习】命名规则 - 驼峰命名法、帕斯卡命名法、匈牙利命名法、下划线命名法
变量如果随便起名字,不仅其他工作人员难以交接,自己看着也非常混乱,如果按照命名规则进行管理,代码可读性会大大提升 文章参考博客:局外人Lee - 三种编程规则:驼峰命名法.帕斯卡命名法.匈牙利名 f- ...
- 骆驼命名法 ,匈牙利命名法 和 帕斯卡命名法
常用命名法:骆驼命名法,匈牙利命名法和帕斯卡命名法 http://xp9802.iteye.com/blog/2111721 骆驼式命令法(Camel): 驼峰法 小驼峰法: 从第个单词开始首字母大写 ...
- 转载——三种编程命名规范(匈牙利命名法、驼峰式命名法、帕斯卡命名法)...
1 . 匈牙利命名: 开头字母用变量类型的缩写,其余部分用变量的英文或英文的缩写,要求单词第一个字母大写. 比如: int iMyAge; "i"是int类型的缩写: char c ...
- 三种编程命名规范(匈牙利命名法、驼峰式命名法、帕斯卡命名法)
1 . 匈牙利命名: 开头字母用变量类型的缩写,其余部分用变量的英文或英文的缩写,要求单词第一个字母大写. ex: int iMyAge; "i"是int类型的缩写: char c ...
- mfc编程淘汰了吗_四种基本的编程命名规范(匈牙利命名法、驼峰式命名法、帕斯卡命名法、下划线命名法)...
匈牙利命名法 匈牙利命名法是早期的规范,由微软的一个匈牙利人发明的,是 IDE 还十分智障的年代的产物.那个年代,当代码量很多的时候,想要确定一个变量的类型是很麻烦的,不像现在 IDE 都会给提示,所 ...
最新文章
- SAP PM 入门系列15 - IW41 维护订单确认
- 要获得“机器学习或数据科学”的工作,到底选哪种编程语言更好?
- 线程的状态、进程的状态
- C语言的指针函数与函数指针
- 最终章 | TensorFlow战Kaggle“手写识别达成99%准确率
- 研发工程师如何转型项目经理
- 逻辑回归分类python实例_Python逻辑回归原理及实际案例应用
- Log4j2发新版本2.16.0,加固漏洞防御,不想被攻击,就赶快更新啦!
- python oop 继承_关于oop:使类数据在python中可继承的正确方法是什么?
- 【IMX6ULL笔记】--内核底层驱动初步探究
- 计算机应用基础教案 电子书,计算机应用基础教案(全套)-20210511075659.pdf-原创力文档...
- 内存卡数据恢复,如何从内存卡恢复数据
- 计算机科学类期刊排名,计算机学术期刊排名:Computer Science Journal Ranki
- 幽暗镰刀:隐私安全下的收割者们
- 《你见,或者不见我》
- 微信要求的android版本是多少,微信发布7.0.15安卓正式版:微信号可以更改,但必须满足条件...
- 华为服务器批量修改bmc地址,华为服务器批量修改bmc地址
- 亚马逊高级产品总监徐霄鹏:如何对不同用户群体采取差异化运营
- PyTorch深度学习(23)Transformer及网络结构ViT
- Linux--Linux服务器空间占满解决办法
热门文章
- HTML5 网页 背景图片设置的方法
- Twisted 入门 教程
- Ubuntu 18.04 LTS 安装教程
- 数据可视化工具整理(仅仅是LIST,会给出详细的关于个例的使用)
- 关于Python错误:“TypeError: Dog() takes no arguments”
- 工程概论I--优享家庭蔬菜-虚拟大学生创新创业项目计划书
- SpringCloud链路追踪SkyWalking-第四章-自定义链路追踪
- 手把手教你在Hexo中使用Github贡献日历(以Next主题为例)
- 关于Docker逃逸
- Tomat安装之后http://localhost:8080无法访问最全解决方案