
变量命名的通用规则
发布日期:2021-05-07 00:31:01
浏览次数:9
分类:技术文章
本文共 5137 字,大约阅读时间需要 17 分钟。
目录
一、参考
一 、普通变量:
前缀 类型
a 数组 (Array) b 布尔值 (Boolean) by 字节 (Byte) == 8 bit c 有符号字符 (Char) cb 无符号字符 (Char Byte,没有多少人用) cr 颜色参考值 (ColorRef) cx,cy 坐标差(长度 ShortInt) dw 双字 (Double Word) == 4 Byte == 4 * 8 bit fn 函数(function) h 句柄(Handle) i 整型(int) l 长整型 (Long int) lp 长指针(Long Pointer) m_ 类的成员(member of a class) n 短整型 (Short Int) np 近指针(Near Pointer) p 指针(Pointer) s 字符串型(string) sz 以字符''结尾的字符串 (String with Zero End) w 字(Word) == 2 Byte == 2 * 8 bit一 、 MFC中ID
IDC_:控件的ID命名前缀(Control)
IDM_:菜单的ID命名前缀(Menu) IDD_:对话框的ID命名前缀(Dialog) IDR_:资源的ID命名前缀(Resource) IDS_:字符串的ID命名前缀(String) IDB_:位图资源的ID命名前缀(Bitmap)一 、 vc资源名字定义格式:
菜单: IDM_XX //M:Menu
位图: IDB_XX //B:Bitmap 对话框: IDD_XX //D:Dialog 字符串: IDS_XX //S:String ICON: IDI_XX //I:Icon 按钮控件: IDC_BTN_XX //BTN:Button 编辑控件: IDC_EDT_XX //EDT:EditBox 列表控件: IDC_LST_XX //LST:ListCtrl 树表控件: IDC_TRE_XX //TRE:TreeCtrl 富文本控件: IDC_RCH_XX //RCH:RichEdit 静态本控件: IDC_STT_XX //STT:StaticText 组合框控件: IDC_CMB_XX //CMB:ComboBox 滚动条控件: IDC_SCR_XX //SCR:ScrollBar 滑动条控件: IDC_SLD_XX //SLD:Slider 多选项控件: IDC_CHK_XX //CHK:CheckBox 单选项控件: IDC_RDB_XX //RDB:RadioButton一 、 MFC 消息命名
ABM 应用程序桌面工具条application desktop toolbar
BM 按钮 button control CB 组合框 combo box control CBEM 扩展组合框 extended combo box control CDM 通用对话框common dialog box DBT 设备devicae DL 下拉列表 drag list box DM Default Push button control DTM Date and time picker control EM 编辑框edit control HDM Header control HXM 热键hot key control IPM IP控件IP address control LB 列表框list box control LVM 列表视图list view control MCM 日历控件month calendar control PBM 进度条progress bar PGM Pager control PSM 属性property control RB 伸缩条rebar control SB 状态条status bar window SBM 滚动条scrol bar control STM 静态条static control TB 工具条toolbar TBM 跟踪条trackbar TCM Tab control TTM Tooltip control TVM 树视图tree_view control UDM Up_down control WM 一般窗口general window一、注意:
1、变量名只能是字母(A-Z,a-z)、数字(0-9)或下划线。
1、第一个字母不能是数字,例如2Lerver这不是一个合法的C++变量。
1、不能是c++关键字,例如不能用class这个单词来命名一个变量。
1、区分大小写,例如iA和ia是两个不同的变量。
理论上,在遵守了上面几条规则的前提下,所声明的变量名称都是合法的。比如下面的命名: char xueshengming[20]; //学生名 char a; //命名一个字符,但变量名毫无意义 这样的变量命名尽管是合法的,但可读性非常差。正规的软件公司,对于变量命名往往都有自己的一个推荐规范。不同公司的规范又会有一些差别。当一个程序员从一个公司跳槽到另一个公司,甚至会出现不习惯新公司代码规范的现象。 万事万物,要是有一个统一的规范,也许程序员这个行业会少一些烦恼。俗话说得好:没有规矩,不成方圆。以下是笔者多年编码得出的变量命名的心得体会,在此总结如下,并奢望有招一日能成为行业规范。 变量命名的宗旨:一、用最短的字符表示最多的意义。
int iPosX; //Pos表示位置,X表示横坐标 //个人比较喜欢用n做前缀一、使用变量前缀
在变量前带上小写前缀可以很直观的看出变量的数据类型,而不必到变量的定义处去查看。常用的数据类型推荐变量前缀:
1、整型的前缀
short sValue; //s为short的前缀int iAge; //i为int的前缀
unsigned int uiAge; //ui为unsigned int的前缀(两个单词的首字母) //也有用u做前缀的 long lValue; //l为long的前缀 2.浮点型的前缀 float fScore; //f为float的前缀1.变量名只能是字母(A-Z,a-z)、数字(0-9)或下划线。
2.第一个字母不能是数字,例如2Lerver这不是一个合法的C++变量。
3.不能是c++关键字,例如不能用class这个单词来命名一个变量。4.区分大小写,例如iA和ia是两个不同的变量。
理论上,在遵守了上面几条规则的前提下,所声明的变量名称都是合法的。比如下面的命名:
char xueshengming[20]; //学生名 char a; //命名一个字符,但变量名毫无意义 这样的变量命名尽管是合法的,但可读性非常差。正规的软件公司,对于变量命名往往都有自己的一个推荐规范。不同公司的规范又会有一些差别。当一个程序员从一个公司跳槽到另一个公司,甚至会出现不习惯新公司代码规范的现象。 万事万物,要是有一个统一的规范,也许程序员这个行业会少一些烦恼。俗话说得好:没有规矩,不成方圆。以下是笔者多年编码得出的变量命名的心得体会,在此总结如下,并奢望有招一日能成为行业规范。一、变量命名的宗旨: 用最短的字符表示最多的意义。
int iPosX; //Pos表示位置,X表示横坐标 //个人比较喜欢用n做前缀一、使用变量前缀
在变量前带上小写前缀可以很直观的看出变量的数据类型,而不必到变量的定义处去查看。常用的数据类型推荐变量前缀:1、局部变量:tmp_
1、类的成员变量(member):m_
1、类的静态成员变量(static member):sm_
1、静态变量(static):s_
1、外部全局变量(global):g_
1、静态全局变量(static global):sg_
1、进程间共享的共享数据段全局变量(global global):gg_
1、除非不得已,否则应该尽可能少使用全局变量。
1、整型的前缀
short sValue; //s为short的前缀 int iAge; //i为int的前缀 unsigned int uiAge; //ui为unsigned int的前缀(两个单词的首字母) //也有用u做前缀的 long lValue; //l为long的前缀1、浮点型的前缀
float fScore; //f为float的前缀 double dValue; //d为double的前缀1、字符型的前缀
char cChar; //c为char的前缀 //个人喜欢用a做前缀 TCHAR tcChar //多字节字符和Unicode字符兼容类型的前缀tc wchar_t wcChar //宽字符前缀wc1、字符串的前缀
char szName[30]; //sz为C语言字符串的前缀 string strName; //str为C++字符串变量的前缀 CString strInfo; //str为MFC字符串变量的前缀1、布尔型的前缀
bool bPass; //b为bool的前缀1、指针型的前缀
int *pValue; //p为指针的前缀 说明:由于指针是指向一定数据类型的变量,因此p后面要不要再加一个前缀一直让我举棋不定。如果再加上前缀比如: int * piKey; char * pszInfo; 这样似乎意义更完整,但势必会增加变量的字符长度。因此,这里就不硬性规定了。但是,指针变量以p开头应该是雷也打不动的。1、数组的前缀
int arrNum[10]; //arr为数组的前缀
说明:和指针变量一样,arr后是否再加数组元素的数据类型前缀取决于你自己。 string arrstrName[3]; //C++字符串数组,加上去似乎很别扭1、枚举变量的前缀
enum emWeek; //em为枚举变量的前缀1、结构变量的前缀:t
定义结构体为了保证和C语言和C++的写法兼容性,一律采用typedef语句。
typedef struct T_NODE
{
int iData;}tNode, *tPNode;
T_NODE tNode; //结构名称以T_开头
1、字节变量的前缀:
by BYTE byInfo;
1、字变量的前缀
DWORD dwInfo; //双字 WORD wInfo; //单字1、字符指针的前缀
LPCTSTR ptszInfo; //ptsz表示前缀,t表示TCHAR类型 LPCSTR pszInfo; LPSTR pszInfo;1、STL容器类型前缀 vector<int> vecValue;
说明:vec表示vector容器的前缀,为了简化变量,变量体后面不再使用前缀 list<double> lstInfo;
1、MFC绑定控件变量的前缀
CEdit m_ctlName; //对象变量,变量体前统一用ctl表示 //个人喜欢用m_ctrl int m_iAge; //值变量,变量体有表示值数据类型的前缀 说明:由于长短指针在32位操作系统后已无区别,所以不再区分,一律以p开头,这也与指针变量以p开头的原则贴得更近。1、矩形结构的前缀:
rc RECT rcClient; CRect rcWin;
1、句柄对象一律以h开头
HWND hWndName; HBRUSH hBr; HPEN hPen; HBITMAP hBmpBack;
1、windows颜色类型的前缀:cr COLORREF crFront;
1、windows中DC(设备上下文)类型的前缀 CClientDC dcClient;
1、类的成员变量以m_开头,后面为变量体,变量体依然要有前缀。
int m_iDepth;
1、定义一个变量,为了简化,在不影响变量意义的情况下,可以仅仅使用前缀。 RECT rc;
1、全局变量一律以g_开头,后面为变量体,变量体依然要有前缀。 int g_iNums;
1、变量体如果是多个单词,每个单词的首字母大写。 int iStudentAge;
1、在意义明确的情况下可以仅仅使用首字母命名变量可以缩短变量名。 int iID;
说明:仅使用首字母表示变量体的前提是保证变量的意义,比如变量iStudentAge如果声明成: int iSA; //这样将失去意义,不可取1、定义一个类使用C作为类名的前缀。 class CStudent { … };
发表评论
最新留言
很好
[***.229.124.182]2025年03月24日 19时04分19秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
世界上有哪些代码量很少,但很牛逼很经典的算法或项目案例?
2019-03-04
使用PyTorch时,最常见的4个错误
2019-03-04
基于OpenCV实战:对象跟踪
2019-03-04
干货|python基础知识总结
2019-03-04
RegExp正则表达式-基本语法
2019-03-04
JavaScript 性能优化-防抖和节流
2019-03-04
ACM解题技巧---(单调栈)+ 题目总结
2019-03-04
面向对象设计原则——单一职责原则
2019-03-04
hdu-1211 Complete the Sequence
2019-03-04
属性闭包求解算法——数据库考试复习
2019-03-04
中缀表达式转后缀表达式
2019-03-04
砍树问题(二分法)
2019-03-04
poj3260The Fewest Coins
2019-03-04
poj3617
2019-03-04
poj3069
2019-03-04
Day160.MySql优化的前置知识简介、Linux 安装 -MySql高级
2019-03-04
Java洛谷P5461 赦免战俘讲解
2019-03-04
关于 form表单 嵌套问题的解决方案
2019-03-04