变量命名 – 匈利亚命名法则 - C语言零基础入门教程

目录

  • 1.属性部分
  • 2.类型部分
  • 3.描述部分
  • 4.MFC、句柄、控件及结构的命名规范
  • 5.变量命名规范
  • 6.库标识符命名法
  • 7.举例
  • 8.猜你喜欢

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门

匈牙利命名法是一种编程时的命名规范。基本原则是:变量名=属性+类型+对象描述,其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分。要基于容易记忆容易理解的原则。保证名字的连贯性是非常重要的。

1.属性部分

g_   全局变量
c_  常量
m_  c++类成员变量
s_  静态变量

2.类型部分

数组     a
指针     p
长指针   Long Pointer
函数     fn
无效     v
句柄     h
长整型   l
布尔     b
浮点型(有时也指文件) f
双字     dw
字符串  sz
短整型  n
双精度浮点 d
计数    c(通常用cnt)
字符    ch(通常用c)
整型    i(通常用n)
字节    by
字      w
实型    r
无符号  u

3.描述部分

最大     Max
最小     Min
初始化   Init
临时变量 T(或Temp)
源对象   Src
目的对象 Dest

4.MFC、句柄、控件及结构的命名规范

Windows类型 样本变量 MFC类 样本变量
HWND hWnd CWnd* pWnd
HDLG hDlg CDialog* pDlg
HDC hDC CDC* pDC
HGDIOBJ hGdiObj CGdiObject* pGdiObj
HPEN hPen CPen* pPen
HBRUSH hBrush CBrush* pBrush
HFONT hFont CFont* pFont
HBITMAP hBitmap CBitmap* pBitmap
HPALETTE hPaltte CPalette* pPalette
HRGN hRgn CRgn* pRgn
HMENU hMenu CMenu* pMenu
HWND hCtl CState* pState
HWND hCtl CButton* pButton
HWND hCtl CEdit* pEdit
HWND hCtl CListBox* pListBox
HWND hCtl CComboBox* pComboBox
HWND hCtl CScrollBar* pScrollBar
HSZ hszStr CString pStr
POINT pt CPoint pt
SIZE size CSize size
RECT rect CRect rect

5.变量命名规范

ch char 8位字符 chGrade
ch TCHAR 如果_UNICODE定义,则为16位字符 chName
b BOOL 布尔值 bEnable
n int 整型(其大小依赖于操作系统) nLengt
n UINT 无符号值(其大小依赖于操作系统) nHeight
w WORD 16位无符号值 wPos
l LONG 32位有符号整型 lOffset
dw DWORD 32位无符号整型 dwRange
p * 指针 pDoc
lp FAR* 远指针 lpszName
lpsz LPSTR 32位字符串指针 lpszName
lpsz LPCSTR 32位常量字符串指针 lpszName
lpsz LPCTSTR 如果_UNICODE定义,则为32位常量字符串指针 lpszName
h handle Windows对象句柄 hWnd
lpfn callback 指向CALLBACK函数的远指针
前缀 符号类型 实例 范围
IDR_ 不同类型的多个资源共享标识 IDR_MAIINFRAME 1~0x6FFF
IDD_ 对话框资源 IDD_SPELL_CHECK 1~0x6FFF
HIDD_ 对话框资源的Help上下文 HIDD_SPELL_CHECK 0x20001~0x26FF
IDB_ 位图资源 IDB_COMPANY_LOGO 1~0x6FFF
IDC_ 光标资源 IDC_PENCIL 1~0x6FFF
IDI_ 图标资源 IDI_NOTEPAD 1~0x6FFF
ID_ 来自菜单项或工具栏的命令 ID_TOOLS_SPELLING 0x8000~0xDFFF
HID_ 命令Help上下文 HID_TOOLS_SPELLING 0x18000~0x1DFFF
IDP_ 消息框提示 IDP_INVALID_PARTNO 8~0xDEEF
HIDP_ 消息框Help上下文 HIDP_INVALID_PARTNO 0x30008~0x3DEFF
IDS_ 串资源 IDS_COPYRIGHT 1~0x7EEF
IDC_ 对话框内的控件 IDC_RECALC 8~0xDEEF
应用程序符号命名规范Microsoft MFC宏命名规范:名称 类型
_AFXDLL 唯一的动态连接库(Dynamic Link Library,DLL)版本
_ALPHA 仅编译DEC Alpha处理器
_DEBUG 包括诊断的调试版本
_MBCS 编译多字节字符集
_UNICODE 在一个应用程序中打开Unicode
AFXAPI MFC提供的函数
CALLBACK 通过指针回调的函数

6.库标识符命名法

标识符 值和含义
u ANSI(N)或Unicode(U)
d 调试或发行:D = 调试,忽略标识符为发行。
静态库版本命名规范:库 描述
NAFXCWD.LIB 调试版本:MFC静态连接库
NAFXCW.LIB 发行版本:MFC静态连接库
UAFXCWD.LIB 调试版本:具有Unicode支持的MFC静态连接库
UAFXCW.LIB 发行版本:具有Unicode支持的MFC静态连接库
动态连接库命名规范:名称 类型
_AFXDLL 唯一的动态连接库(DLL)版本
WINAPI Windows所提供的函数
Windows.h中新的命名规范:类型 定义描述
WINAPI 使用在API声明中的FAR PASCAL位置,如果正在编写一个具有导出API人口点的DLL,则可以在自己的API中使用该类型
CALLBACK 使用在应用程序回叫例程,如窗口和对话框过程中的FAR PASCAL的位置
LPCSTR 与LPSTR相同,只是LPCSTR用于只读串指针,其定义类似(const char FAR*)
UINT 可移植的无符号整型类型,其大小由主机环境决定(对于Windows NT和Windows 9x为32位);它是unsigned int的同义词
LRESULT 窗口程序返回值的类型
LPARAM 声明lParam所使用的类型,lParam是窗口程序的第四个参数
WPARAM 声明wParam所使用的类型,wParam是窗口程序的第三个参数
LPVOID 一般指针类型,与(void *)相同,可以用来代替LPSTR

7.举例

hwnd :        h 是类型描述,表示句柄, wnd 是变量对象描述,表示窗口,所以 hwnd 表示窗口句柄;
pfnEatApple : pfn 是类型描述,表示指向函数的指针, EatApple 是变量对象描述,所以它表示指向 EatApple 函数的函数指针变量。
g_cch :       g_ 是属性描述,表示全局变量,c 和 ch 分别是计数类型和字符类型,一起表示变量类型,这里忽略了对象描述,所以它表示一个对字符进行计数的全局变量。MFC、句柄、控件及结构的命名规范:
Windows类型 样本变量;MFC类 样本变量
HWND hWnd;
CWnd* pWnd;
HDLG hDlg;
CDialog* pDlg;
HDC hDC;
CDC* pDC;
HGDIOBJ hGdiObj;
CGdiObject* pGdiObj;
HPEN hPen;
CPen* pPen;
HBRUSH hBrush;
CBrush* pBrush;
HFONT hFont;
CFont* pFont;
HBITMAP hBitmap;
CBitmap* pBitmap;
HPALETTE hPaltte;
CPalette* pPalette;
HRGN hRgn;
CRgn* pRgn;
HMENU hMenu;
CMenu* pMenu;
HWND hCtl;
CState* pState;
HWND hCtl;
CButton* pButton;
HWND hCtl;
CEdit* pEdit;
HWND hCtl;
CListBox* pListBox;
HWND hCtl;
CComboBox* pComboBox;
HWND hCtl;
CScrollBar* pScrollBar;
HSZ hszStr;
CString pStr;
POINT pt;
CPoint pt;
SIZE size;
CSize size;
RECT rect;
CRect rect;

8.猜你喜欢

  1. 安装 Visual Studio
  2. 安装 Visual Studio 插件 Visual Assist
  3. Visual Studio 2008 卸载
  4. Visual Studio 2003/2015 卸载
  5. 设置 Visual Studio 字体/背景/行号
  6. C 语言 Hello World
  7. C 语言代码注释
  8. C 语言数据类型 / 变量类型
  9. C 语言变量声明和定义
  10. 变量命名 – 匈利亚命名法则

未经允许不得转载:猿说编程 » 变量命名 – 匈利亚命名法则

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/525154.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

if多选择结构

package com.wuming.struct; import java.util.Scanner; public class IfDemo03 { public static void main(String[] args) { //if多选择 /* * if语句最多一个else,且在else if之后 * if可以有多个else if且在else之前 …

BugkuCTF-Crypto题一段Base64

解此题需要下载Converter工具 先Base64解码 再Unescape一下 再16进制ASCII解码一下 再Unescape一下 复制括号里面的参数,再10进制ASCII解码一下 再Html解码一下 再Html解码一下 flag{ctf_tfc201717qwe}

程序员加班很严重吗?看看国外程序员怎么怼老板!

戳蓝字“CSDN云计算”关注我们哦!来自:https://blog.csdn.net/weixin_43338842/article/details/84339727作者:前端一鸣 1、IT已成为最疯狂的加班行业,没有之一夜幕降临,当IT大楼里依然灯火通明时&#xff…

C语言数组下标越界

数组越界的严重性 在 C 语言里,数组需为静态的。数组的大小需要在程序运行前就确定下来。 C语言数组越界的严重性在于对数组元素访问及修改的内容存在不确定性。 这类没有预知性的修改会导致无法确定的错误,发生缓冲区泄露漏洞。 这也就是数组越界的严重…

C语言代码注释 - C语言零基础入门教程

目录 方法一:使用//方法二:使用/* */方法三:使用宏 #if #else #end猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 注释是为了使别人能看懂你写的程序,也为了使你在若干年后还能看得懂你曾经写的程序而设定的。 注释是写给程序员看的&…

重磅!英特尔终于挤出10nm芯片 六大技术战略,震动芯片届

戳蓝字“CSDN云计算”关注我们哦!最近几日,对英特尔来说可谓大事连连,在北京,正举办20岁生日的英特尔中国研究院的隔壁楼房着了大火,而远在大洋彼岸,英特尔在加州Los Altos举办的“架构日”上连发大招!北京…

while循环结构

语法: while(布尔表达式){ } 1.只要为true,一直执行 2.大多数情况想要循环结束,需要表达式失效 3.少部分需要一直执行,服务器监听、请求响应 4.一直true会死循环应避免 package com.wuming.struct; …

shellcraft新姿势

pwnable_orw exp 脚本 这道题的难度在于只能调用 open read 和 write ,学到了 shellcraft 新的使用方式 from pwn import * io remote(‘node3.buuoj.cn’,25539) context.binary ‘orw’ elf ELF(‘orw’) shellcode shellcraft.open(’/flag’) shellcode sh…

C语言 Hello World - C语言零基础入门教程

目录 一.Hello World 源码 1.#include – 预处理器指令2.main 函数 – 入口函数3.printf 函数4.return 0 二.Visual Studio 运行生成项目 1.使用快捷键 Ctrl F52.点击 本地 Windows 调试器 三.猜你喜欢 零基础 Python 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一…

你需要掌握的事件分发高阶知识

戳蓝字“CSDN云计算”关注我们哦!系列前作1. Android输入系统的事件传递流程和IMS的诞生2. 只了解View的事件分发是不够的,来看下输入系统对事件的处理1.InputReader的加工类型在只了解View的事件分发是不够的,来看下输入系统对事件的处理这篇…

沙盒相关简介

沙盒 沙盒(英语:sandbox,又译为沙箱),计算机专业术语,在计算机安全领域里是一类安全机制,为运行的程序提供的隔离环境。通常是作为一些来源不可信、具破坏力或无法判定程序意图的程序提供实验之…

d0...while循环结构讲解

至少执行一次,先执行后判断(while是先判断后执行,条件不满足就不会执行) package com.wuming.struct; public class DoWhileDemo01 { public static void main(String[] args) { //计算1234...100? int i0…

C语言数据类型 / 变量类型 - C语言零基础入门教程

目录 一.C 语言数据类型分类二.C 语言整形 1.无符号整形(16 位系统)2.有符号整形(16 位系统)3.int 和 long 区别4.超出取值范围的整形 三.C 语言浮点型 float/double 1.float(单精度)2.double(…

【拨云见日】全面云化时代,如何选择适合自己的“云”?

戳蓝字“CSDN云计算”关注我们哦!随着云计算技术的不断成熟,大数据、人工智能、区块链等技术的推陈出新,政府和企业级客户开始逐渐接受云计算。云计算不仅可以帮助政府客户解决运维人员能力不足、人手不足、安全保障等问题,也可以…

PWN题[强网先锋]orw超详细讲解(多解法)

知识点 构造一段shellcode的作用就是为了在缓冲区溢出时将shellcode的地址覆盖正常的返回地址。 \x00 截断符 shellcode里出现\x00就会从其截断,所以构造shellcode的时候要避免\x00 x64函数调用规则 x64机器在调用某个函数前,比如int func(int a, int…

for循环讲解啊

package com.wuming.struct; public class ForDemo01 { public static void main(String[] args) { int a1;//初始化条件 while(a<100){//条件判断 System.out.println(a);//循环体 a2;//迭代 } System.out.p…

资深程序员参加面试因穿着被认为是新手,拿下帽子后,被当场录取

戳蓝字“CSDN云计算”关注我们哦&#xff01;&#xff08;图自&#xff1a;微博冰原上空的飞燕&#xff09;IT程序猿 微博网友评论&#xff1a;嘉嘉大美人&#xff1a;这个发型&#xff0c;小公司都雇不起NanoNova&#xff1a;格子衫&#xff0c;脱发这些梗还要用多久贝贝呵呵哈…

BugkuCTF-Crypto题这不是md5

描  述: 666c61677b616537333538376261353662616566357d 知识点&#xff1a;16进制到文本字符串 66 6c 61 67 7b 61 65 37 33 35 38 37 62 61 35 36 62 61 65 66 35 7d 点击十六进制转字符&#xff1a;

为什么公司宁愿花25K重新招人,也不愿花20K留住老员工?

戳蓝字“CSDN云计算”关注我们哦&#xff01;身在职场&#xff0c;经常会暗自打听同事工资&#xff0c;尤其是得知身边新入职同事的工资居然比自己高&#xff0c;还高出一大截时&#xff0c;心里自然很不平衡&#xff0c;一心想要离职。 那么&#xff0c;为什么公司宁愿花高价招…

for循环练习题

package com.wuming.struct; public class ForDemo02 { public static void main(String[] args) { //计算0~100之间奇数和&#xff0c;偶数和 int oddSum0; int evenSum0; for (int i 0; i <100; i) { if (i%2!0){//奇数…