您好,欢迎访问三七文档
最全C++变量命名规则aArray数组bBOOL(int)布尔(整数)byUnsignedChar(Byte)无符号字符(字节)cChar字符(字节)cbCountofbytes字节数crColorreferencevalue颜色(参考)值cxCountofx(Short)x的集合(短整数)dwDWORD(unsignedlong)双字(无符号长整数)fFlags标志(一般是有多位的数值)fnFunction函数g_global全局的hHandle句柄iInteger整数lLong长整数lpLongpointer长指针m_Datamemberofaclass一个类的数据成员nShortint短整数pPointer指针sString字符串szZeroterminatedString以0结尾的字符串tmTextmetric文本规则uUnsignedint无符号整数ulUnsignedlong(ULONG)无符号长整数wWORD(unsignedshort)无符号短整数x,yx,ycoordinates(short)坐标值/短整数vvoid空g_全局变量g_ServersC类或者结构体CDocument,CPrintInfom_成员变量m_pDoc,m_nCustomersVC常用前缀列表:前缀类型描述例子chchar8位字符chGradechTCHAR16位UNICODE类型字符chNamebBOOL布尔变量bEnablednint整型(其大小由操作系统决定)nLengthnUINT无符号整型(其大小由操作系统决定)nLengthwWORD16位无符号整型wPoslLONG32位有符号整型lOffsetdwDWORD32位无符号整型dwRangep*Ambientmemorymodelpointer内存模块指针,指针变量pDoclpFAR*长指针lpDoclpszLPSTR32位字符串指针lpszNamlpszLPCSTR32位常量字符串指针lpszNamelpszLPCTSTR32位UNICODE类型常量指针lpszNamehhandleWindows对象句柄hWndlpfn(*fn)()回调函数指针CallbackFarpointertoCALLBACKfunctionlpfnAbortWindows对象名称缩写:Windows对象例子变量MFC类例子对象HWNDhWnd;CWnd*pWnd;HDLGhDlg;CDialog*pDlg;HDChDC;CDC*pDC;HGDIOBJhGdiObj;CGdiObject*pGdiObj;HPENhPen;CPen*pPen;HBRUSHhBrush;CBrush*pBrush;HFONThFont;CFont*pFont;HBITMAPhBitmap;CBitmap*pBitmap;HPALETTEhPalette;CPalette*pPalette;HRGNhRgn;CRgn*pRgn;HMENUhMenu;CMenu*pMenu;HWNDhCtl;CStatic*pStatic;HWNDhCtl;CButton*pBtn;HWNDhCtl;CEdit*pEdit;HWNDhCtl;CListBox*pListBox;HWNDhCtl;CComboBox*pComboBox;VC常用宏定义命名列表:前缀符号类型符号例子范围IDR_标识多个资源共享的类型IDR_MAINFRAME1~0x6FFFIDD_对话框资源(Dialog)IDD_SPELL_CHECK1~0x6FFFHIDD_基于对话框的上下文帮助HIDD_SPELL_CHECK0x20001~0x26FFIDB_位图资源(Bitmap)IDB_COMPANY_LOGO1~0x6FFFIDC_光标资源(Cursor)IDC_PENCIL1~0x6FFFIDI_图标资源(Icon)IDI_NOTEPAD1~0x6FFFID_/IDM_工具栏或菜单栏的命令项ID_TOOLS_SPELLING0x8000~0xDFFFHID_命令上下文帮助HID_TOOLS_SPELLING0x18000~0x1DFFFIDP_消息框提示文字资源IDP_INVALID_PARTNO8~0xDFFFHIDP_消息框上下文帮助HIDP_INVALID_PARTNO0x30008~0x3DFFFIDS_字符串资源(String)IDS_COPYRIGHT1~0x7FFFIDC_对话框内的控制资源IDC_RECALC8~0xDFFFWindows.h中新的命名规范类型定义描述WINAPI使用在API声明中的FARPASCAL位置,如果正在编写一个具有导出API人口点的DLL,则可以在自己的API中使用该类型CALLBACK使用在应用程序回调程序,如窗口和对话框过程中的FARPASCAL的位置LPCSTR与LPSTR相同,只是LPCSTR用于只读串指针,其定义类似(constcharFAR*)UINT可移植的无符号整型类型,其大小由主机环境决定(对于WindowsNT和Windows9x为32位);它是unsignedint的同义词LRESULT窗口程序返回值的类型LPARAM声明lParam所使用的类型,lParam是窗口程序的第四个参数WPARAM声明wParam所使用的类型,wParam是窗口程序的第三个参数LPVOID一般指针类型,与(void*)相同,可以用来代替LPSTRC++命名规范在一个项目中,命名风格保持一致,否则会降低源码的可读性。命名必须要注意的两点:1)永远不要使用晦涩的名字2)总是使用全大写字母表示宏和常量匈牙利命名法:匈牙利命名法的一个特点是将类型信息混入名称中,例如:intnNum=0;//n为类型信息,表明nNum是一个int类型classCUser;//C为类型信息,表明CUser是一个类通常的观点认为,在名称中加入类型信息会增加代码的可读性,实际上,这种效果甚微。加入类型信息的不良表现之一是降低可维护性,一个很简单的例子:classCUser{private:intm_nID;}如果出现某种情况导致需要修改m_nID的类型为long,那么m_nID应该改名字为m_lID,那么意味着要在整个类中修改m_nID。更糟糕的情况是:classCHome{public:voidf();}voidCHome::f(){intnID=m_pUser-GetID();//nID需要改成lID//下面大量使用nID}可见,CHome中的f函数的局部变量nID在id类型由int变成long时也受到了影响。总的来说是将类型信息引入名称中致使维护成本增加,我们本无需因为类型的改变维护名称,匈牙利命名法将类型绑定在名称上,使得必须在类型变动时维护名称。在泛型编程中,几乎无法使用匈牙利命名法,因为具体的类型信息并不存在。除非你使用纯文本编辑器,否则名称中加入类型信息的做法不会为你增加任何可读性(现代的IDE甚至是一些高级文本编辑器,在你用鼠标点击到变量名称上时,就能显示变量的类型),它已经过时了。一套可行的命名规范:1)类名、枚举名、结构名、联合名、typedef定义的类型名、函数名可以使用LikeThis的命名方式。2)变量名使用诸如likeThis的命名方式(首字母小写)3)类成员变量名前加m_例如:classUser{intm_id;}全局变量前加g_例如:intg_id;静态变量使用s_例如:staticints_id;这里说明一下,为什么需要把作用域和链接性信息融入名称中:1变量作用域和链接性改变的情况是很少的,例如,很少的情况下会把一个成员变量改成静态变量2编程中使用的工具常常不会直观的显示变量的作用域和链接性3在许多高质量的代码中,均不同程度的将作用域信息融入变量名称中(通常使用_来表明其作用域)对于静态类成员变量,通常使用如下方式表示:templatetypenameTclassSingleton{protected:staticT*ms_instance;//作用域前于链接性}4)宏和常量使用LIKE_THIS的命名方式5)namespace使用小写字母命名6)接口使用ILikeThis的命名方式//另外全局变量,局部静态变量要使用长一点的具有可读性的名字,取如i,x的名字易在小作用域中被屏蔽掉。也不要取带o,l的名字,易与0,1混淆。取名字也是门艺术。
本文标题:最全C++命名规则
链接地址:https://www.777doc.com/doc-2317049 .html