首页 > 其他分享 >匈牙利命名法

匈牙利命名法

时间:2022-11-22 15:11:17浏览次数:27  
标签:型态 前缀 int 匈牙利 整型 命名 变量名 变量

匈牙利命名法

许多 Windows 程序员都使用“匈牙利标记法”作为变量命名约定。这是为了纪念具有传奇色彩的微软程序员 Charles Simonyi。

这种标记法非常简单,即变量名以一个或者多个小写字母开始,这些字母表示变量的数据型态。例如:szCmdLine 中的 sz 代表“以0结尾的字符串(StringZero)”;在 hInstance 和 hPrevInstance 中的 h 前缀表示“句柄(Handle)”;在 iCmdShow 中的 i 前缀表示“整型(Integer)”。

当命名结构变量时,可以用结构名(或者结构名的一种缩写)的小写形式作为变量名称的前缀,或者用作整个变量名。例如:msg 变量是 MSG 型态的结构;wndclass 是 WNDCLASSEX 型态的一个结构;ps 是一个 PAINTSTRUCT 结构,rect 是一个 RECT 结构。

匈牙利表示法能够帮助程序写作者及早发现并避免程序中的错误。由于变量名既描述了变量的作用,又描述了其数据型态,就比较容易避免产生数据型态不合的错误。


下表列出了经常用到的变量名前缀:

前缀 数据类型
c char 或 WCHAR 或 TCHAR
by BYTE (无符号字符)
n short(短整型)
i int(整型)
x, y int,表示 x 坐标和 y 坐标
cx, cy int,表示 x 或 y 的长度,c 表示“count”(计数)
B 或 f BOOL(int);f 表示“flag”
w WORD(无符号短整型)
l LONG(长整型)
dw DWORD(无符号长整型)
fn 函数
s 字符串
sz 以零结束的字符串
h 句柄
p 指针

标签:型态,前缀,int,匈牙利,整型,命名,变量名,变量
From: https://blog.51cto.com/u_13875041/5877971

相关文章

  • Java命名规范
    命名规范  一、一般概念        1、尽量使用完整的英文描述符        2、采用适用于相关领域的术语        3、采用大小写混合使名字可读  ......
  • 【Unity3D】Unity 脚本 ③ ( C# 脚本的执行入口函数 | 获取当前游戏物体及物体名称 |
    文章目录​​一、C#脚本的执行入口函数​​​​二、获取当前游戏物体及物体名称​​​​三、获取游戏物体的Transform组件数据​​​​四、UnityEngine命名空间简介......
  • MAUI新生1.4-XAML语法基础:x命名空间xmlns:x
    x命名空间,又叫XAML命名空间,作用于XAML的编译过程。我们知道,XAML代码,最终通过XAML编译器,编译为中间代码IL,并与后台C#代码的编译结果合并。而在编译的过程中,经常需要告诉编译......
  • 二分图相关知识+染色法+匈牙利
    一、相关概念:1、二分图把图中的点分到两个集合中,集合内的点之间没有边相连,边存在于两个集合之间2、匹配、最大匹配、完美匹配匹配:匹配是边的集合,任意两条边都没有公共......
  • 77:参数的类型_位置参数_默认值参数_命名参数
    ###参数的几种类型###位置参数函数调用时,实参默认按位置顺序传递,需要个数和形参匹配。按位置传递的参数,称为:“位置参数”。【操作】测试位置参数deff1(a,b,c):......
  • 78:参数的类型_可变参数_强制命名参数
    ###可变参数可变参数指的是“可变数量的参数”。分两种情况:1.*param(一个星号),将多个参数收集到一个“元组”对象中。2.**param(两个星号),将多个参数收集到一个“字典”对象......
  • 华三和华为的交换机/路由器命名规则
    华三和华为的交换机/路由器命名规则华三交换机:H3CS5500-28C-EIH3C 是华三的品牌名称S指交换机,SR指路由器S5500 指子产品系列产品系列:9 核心机箱式交换机7 高端......
  • GO命名规范
    GO命名规范Go中命名规范主要分为两种:标识符:函数名,常量,变量等其他:模块,文件标识符命名为应当严格遵行规范,因为会影响到标识符的作为域.非标识符命名在......
  • XML指南——XML 命名空间
    XML命名空间提供了一种避免元素命名冲突的方法。命名冲突因为XML文档中使用的元素不是固定的,那么两个不同的XML文档使用同一个名字来描述不同类型的元素的情况就可能发生。......
  • C# 查找文件夹下的文件,进行重命名
    privatevoidrename(){varpath=@"E:\code\LIMS\UI设计稿\UI设计\icon\图标(3)\图标\\";DirectoryInfodirectory=newDirectoryI......