C语言命名规则_第1页
C语言命名规则_第2页
C语言命名规则_第3页
C语言命名规则_第4页
C语言命名规则_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、匈牙利命名法是微软推广的一种关于变量、函数、对象、前缀、宏定义等各种类型的符号的命名规范。匈牙利命名法的主要思想是:在变量和函数名中加入前缀以增进人们对程序的理解。它是由微软内部的一个匈牙利人发起使用的,结果它在微软内部逐渐流行起来,并且推广给了全世界的Windows开发人员。下面将介绍匈牙利命名法,后面的例子里也会尽量遵守它和上面的代码风格。   a       Array            

2、0;                    数组  b       BOOL (int)                     

3、       布尔(整数)  by      Unsigned Char (Byte)                  无符号字符(字节)  c       Char      

4、                            字符(字节)  cb      Count of bytes             

5、;           字节数  cr      Color reference value                 颜色(参考)值  cx      Count of x (Short)  

6、                  x的集合(短整数)  dw      DWORD   (unsigned long)                 双字(无符号长整数)  f

7、       Flags   (usually multiple bit values)   标志(一般是有多位的数值)  fn      Function                       

8、0;      函数  g_      global                                全局的  h   

9、60;   Handle                                句柄  i       Integer      &

10、#160;                        整数  l       Long                 

11、60;                长整数  lp      Long pointer                         

12、长指针  m_      Data member of a class                一个类的数据成员  n       Short int             

13、0;               短整数  p       Pointer                          &#

14、160;    指针  s       String                                字符串  sz    &

15、#160; Zero terminated String                以0结尾的字符串  tm      Text metric                    &#

16、160;      文本规则  u       Unsigned int                          无符号整数  ul      Unsigned

17、 long (ULONG)                 无符号长整数  w       WORD (unsigned short)                 无符号短整数  x,y 

18、;    x, y coordinates (short)              坐标值/短整数  v       void                    &

19、#160;             空 有关项目的全局变量用g_开始,类成员变量用m_,局部变量若函数较大则可考虑用l_用以显示说明其是局部变量。前缀       类型       例子g_    全局变量       g_ServersC 

20、0;   类或者结构体       CDocument,CPrintInfom_   成员变量       m_pDoc,m_nCustomers VC常用前缀列表:前缀       类型       描述       例子ch  

21、;  char 8位字符    chGradech    TCHAR       16位UNICODE类型字符       chNameb     BOOL       布尔变量       bEnabledn   &#

22、160; int    整型(其大小由操作系统决定)       nLengthn     UINT       无符号整型(其大小由操作系统决定)       nLengthw    WORD       16位无符号整型   

23、 wPosl      LONG       32位有符号整型    lOffsetdw   DWORD       32位无符号整型       dwRangep     *       Ambient memory

24、model pointer 内存模块指针,指针变量    pDoclp     FAR*       长指针       lpDoclpsz  LPSTR       32位字符串指针       lpszNamelpsz  LPCSTR  

25、0;    32位常量字符串指针       lpszNamelpsz  LPCTSTR       32位UNICODE类型常量指针       lpszNameh     handle       Windows对象句柄    

26、0;  hWndlpfn  (*fn)()  回调函数指针 Callback Far pointer to CALLBACK function lpfnAbort Windows对象名称缩写:Windows对象       例子变量       MFC类       例子对象HWND    hWnd;    

27、   CWnd*       pWnd;HDLG     hDlg;       CDialog*       pDlg;HDC       hDC;       CDC*     

28、0; pDC;HGDIOBJ       hGdiObj;       CGdiObject*     pGdiObj;HPEN     hPen;       CPen*       pPen;HBRUSH hBrush;    

29、0;  CBrush*       pBrush;HFONT   hFont;       CFont*       pFont;HBITMAP       hBitmap;       CBitmap*     

30、60; pBitmap;HPALETTE       hPalette;       CPalette*       pPalette;HRGN     hRgn;       CRgn*       pRgn;HMENU hMenu;  

31、     CMenu*       pMenu;HWND    hCtl;       CStatic*       pStatic;HWND    hCtl;       CButton*      

32、; pBtn;HWND    hCtl;       CEdit*       pEdit;HWND    hCtl;       CListBox*       pListBox;HWND    hCtl;     &

33、#160; CComboBox*       pComboBox; VC常用宏定义命名列表:前缀       符号类型       符号例子       范围IDR_      标识多个资源共享的类型       IDR_MAINFRAME

34、       10x6FFFIDD_      对话框资源(Dialog)       IDD_SPELL_CHECK       1 0x6FFFHIDD_    基于对话框的上下文帮助       HIDD_SPELL_CHECK    

35、;   0x200010x26FFIDB_       位图资源(Bitmap)       IDB_COMPANY_LOGO       10x6FFFIDC_      光标资源(Cursor)       IDC_PENCIL    10x6FFFIDI

36、_       图标资源(Icon)       IDI_NOTEPAD 10x6FFFID_、IDM_    工具栏或菜单栏的命令项    ID_TOOLS_SPELLING       0x80000xDFFFHID_      命令上下文帮助     &

37、#160; HID_TOOLS_SPELLING       0x180000x1DFFFIDP_       消息框提示文字资源       IDP_INVALID_PARTNO       80xDFFFHIDP_    消息框上下文帮助       HIDP_IN

38、VALID_PARTNO       0x300080x3DFFFIDS_       字符串资源(String)       IDS_COPYRIGHT       10x7FFFIDC_      对话框内的控制资源       IDC_RECA

39、LC   80xDFFF Microsoft MFC宏命名规范名称       类型_AFXDLL       唯一的动态连接库(Dynamic Link Library,DLL)版本_ALPHA  仅编译DEC Alpha处理器_DEBUG 包括诊断的调试版本_MBCS   编译多字节字符集_UNICODE       在一个应用程序中打开UnicodeA

40、FXAPI  MFC提供的函数CALLBACK       通过指针回调的函数 库标识符命名法标识符    值和含义u     ANSI(N)或Unicode(U)d     调试或发行:D = 调试;忽略标识符为发行 静态库版本命名规范库    描述NAFXCWD.LIB       调试版本:MFC静态连

41、接库NAFXCW.LIB       发行版本:MFC静态连接库UAFXCWD.LIB       调试版本:具有Unicode支持的MFC静态连接库UAFXCW.LIB       发行版本:具有Unicode支持的MFC静态连接库 动态连接库命名规范名称       类型_AFXDLL     

42、  唯一的动态连接库(DLL)版本WINAPI       Windows所提供的函数 Windows.h中新的命名规范类型       定义描述WINAPI  使用在API声明中的FAR PASCAL位置,如果正在编写一个具有导出API人口点的DLL,则可以在自己的API中使用该类型CALLBACK       使用在应用程序回调程序,如窗口和对话框过程中的FAR PASCAL的位置L

43、PCSTR 与LPSTR相同,只是LPCSTR用于只读串指针,其定义类似(const char FAR*)UINT      可移植的无符号整型类型,其大小由主机环境决定(对于Windows NT和Windows                            &

44、#160;               9x为32位);它是unsigned int的同义词LRESULT       窗口程序返回值的类型LPARAM 声明lParam所使用的类型,lParam是窗口程序的第四个参数WPARAM       声明wParam所使用的类型,wParam是窗口程序的第三个参数LPVOID  一般指

45、针类型,与(void *)相同,可以用来代替LPSTR MSDN中给出了一段遵守代码风格和匈牙利命名法的代码参考如下:1   #include “sy.h”2   extern int *rgwDic;3   extern int bsyMac;4   struct SY *PsySz(char sz)6   7       char *pch;8       int

46、 cch;9       struct SY *psy, *PsyCreate();10      int *pbsy;11      int cwSz;12      unsigned wHash=0;13      pch=sz;14      while (*pch!=0)15

47、60;         wHash=wHash<>11+*pch+;16      cch=pch-sz;17      pbsy=&rgbsyHash(wHash&077777)%cwHash;18      for (; *pbsy!=0; pbsy = &psy->bsyNext)19   

48、   20          char *szSy;21          szSy= (psy=(struct SY*)&rgwDic*pbsy)->sz;22          pch=sz;23        

49、  while (*pch=*szSy+)24          25              if (*pch+=0)26                  return (psy);27

50、0;         28      29      cwSz=0;30      if (cch>=2)31          cwSz=cch-2/sizeof(int)+1;32      *pbsy=(int *)(

51、psy=PsyCreate(cwSY+cwSz)-rgwDic;33      Zero(int *)psy,cwSY);34      bltbyte(sz, psy->sz, cch+1);35      return(psy);36  按照MS方式编程:匈牙利符号表示法 匈牙利符号表示法包括许多与下列命名有关的约定: (1)变量 (2)函数 (3)类型和常量 (4)类 (5)参数 匈牙利符号表示法的前缀代码指导说明书: *

52、前缀 数据类型(基本类型) C 字符 BY 字节 N 短整数和整数(表示一个数) I 整数 X,Y 短整数(通常用于X坐标和Y坐标) CX,CY 短整数(通常用于表示X和Y的长度,C表示计数) B 布尔型 W UINT(无符号数)和WORD(无符号字) L LONG(长整数) DW DWORD(无符号长整数) FN 函数指针 S 串 SZ,STR 以0字节终止的字符串 LP 32位长整数指针 H 编号(常用于表示Windows对象) MSG 消息 * 变量的命名: 应用匈牙利表示法,变量可用上表中的前缀代码来表示。另外,当一个变量是由一个或几个子名构成时,每一个子名都要以大写字母开头。下 面是

53、几个例子: char *szfileName; / a nulla terminated string:以0终止的字符串 int *lpidate; / a 32-bit pointer to an int:指向一个整型变量的32位的长指针 Bool,bSemaphore; /a boolean value WORD dwMaxCount / a 32-bit unsigned WORD 尽管我们了解一个函数的局部变量没有说明,但是也有个别表示全局变量必须要以 g_ 开头: int g_iXPos; / a global x-position int g_iTimer; / a global

54、y-position char *g_szString /a global NULL terminated string 函数的命名: 函数和变量的命名方式相同,但是没有前缀,换句话说,子名的第一个字母要大写。下面是几个例子: int PlotPixel(int ix,int iy,int ic); void *MemScan(char *szString); 而且,下划线是非法的。例如,下面的函数名表示是无效的匈牙利表示法: int Get_Pixel(int ix,int iy); 类型和常量的命名: 所有的类型和常量都是大写字母,但名字中可以允许有下划线。如: const LONG NU

55、M_SECTORS=100; / a C+ style constant #define MAX_CELLS 64; / a C style constant #define POWERUNIT 100; / a C style constant typedef unsigned char UCHAR; / a user defined type 类的命名 类命名的约定可能要麻烦一点。但我也看到有很多人在使用这个约定,并独立地进行补充。不管怎么说,所有C+的类必须以大写C为前缀,类 名字的每一个子名的第一个字母都必须大写: class CVector / the chinese mean of vector is 矢量 public CVector(); ix=iy=iz=imagnitude=0; /the chinese mean of magnitude is 大小

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论