匈牙利命名法
一、简介
匈牙利命名法(Hungarian Notation),是由1972年至1981年在施乐公司工作的程序员查尔斯.西蒙尼(Charles.Simony),此人后来成为微软的总设计师,因其祖籍是匈牙利,故有此名。
二、规则
1、属性部分
全局变量 | g_ |
常量 | c_ |
类的成员变量 | m_ |
静态常量 | s_ |
2、类型部分
数组 | a | 长整型 | l |
指针 | p | 布尔型 | b |
函数 | fn | 浮点型 | f |
无效 | v | 双字节 | dw |
句柄 | h | 字符串 | sz |
短整型 | n | 双精度浮点型 | d |
计数 | cnt | 字符 | ch |
整数 | i | 字节 | by |
字节 | w | 无符号 | u |
3、描述部分
最大 | Max | 最小 | Min |
初始化 | Init | 临时变量 | Temp |
源对象 | Src | 目的对象 | Dest |
例子:变量定义的这些描述符号可以多个同时使用,顺序一般是m_,再指针,再简单数据类型,再其它。
hwnd: h类型描述,表示句柄;wnd是变量的对象描述,表示窗口,所以hwnd表示窗口句柄。
pfnEatApple: pfn是类型描述,表示指向函数的指针;EatApple是变量对象描述,所以pfnEatApple表示指向EatApple函数的函数指针变量。
m_lpszStr: m_表示是成员变量;l表示长整型;p表示指针;sz表示的是字符串;Str是对象描述;所以m_lpszStr的含义就是表示指向一个字符串的长指针成员变量。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构