C C++ VC MFC 命名规范

//****************************************************************************
//                       -----(C) Lhw978@163.com----
//文 件 名: C C++ VC MFC 命名规范.txt
//收集整理: Heavily (劲草...无香)
//邮    箱: Lhw978@163.com
//      QQ: 64616914
// C/C++群: 838925525
//日    期: 2012-03-07
//功    能: C C++ VC MFC 命名规范
//版权声明: 本规范完全自由,可在尊重作者版权的前提下,用于各种合法用途。
//          最终解释权归属作者本人。
//备    注: 本规范由网上公开的零散规范收集整理而成,并加以适当修改。
//          欢迎各位同行的指正、补充、交流。
//****************************************************************************

本命名取自“匈牙利”法,仅供参考。
数据类型的命名规则参考:
定义类型:

前缀 类型                    类型描述            示例                   占字节(Win32) 有效值                 取值范围
-------------------------------------------------------------------------------------
typedef int BOOL             VC++自定义BOOL      BOOL           bFlag            4    (TRUE/FALSE)           非0|0
b    Boolena-布尔            1Bit的标志          bool           bFlag            1    (true/false)           (0x0 ~0x1)
-------------------------------------------------------------------------------------
typedef unsigned char  BYTE;                     BYTE           byValue;         1    0   ~255               (0x0 ~0xFF)
by   Byte 字节               无符号的8bit字节    unsigned char  uchValue;        1    0   ~255               (0x0 ~0xFF)
ch   Char 字符               有符号的8bit字节    signed   char  chValue;         1    -128~127               (0x80~0x7F)
-------------------------------------------------------------------------------------
typedef unsigned SHORT WORD;                     WORD           wValue;          2    0     ~65535           (0x0   ~0xFFFF)
w    不带符号的Word字        无符号的16bit整数   unsigned short usValue;         2    0     ~65535           (0x0   ~0xFFFF)
s    带符号的16位整型数      有符号的16bit整数   signed   short sValue;          2    -32768~32767           (0x8000~0x7FFF)
-------------------------------------------------------------------------------------
typedef unsigned int   DWORD;                    DWORD          dwValue;         4    0          ~4294967295  (0x0       ~0xFFFFFFFF)
dw   不带符号的doubleword字  无符号的32bit整数   unsigned int   unValue;         4    0          ~4294967295  (0x0       ~0xFFFFFFFF)
n    带符号的32位整型数      有符号的32bit整数   signed   int   nValue;          4    -2147483648~2147483647  (0x80000000~0x7FFFFFFF)
l    带符号的长整型数                            long           lValue;         4/8
ll   带符号的扩展长整型数                        long long      llValue;         8
-------------------------------------------------------------------------------------
f    单精度浮点数            单精度浮点数        float          fValue;          4
d    双精度浮点数            双精度浮点数        double         dValue;          8
-------------------------------------------------------------------------------------
r    引用                                        float          &rfValue;
p    指针(pointer)           指针                char           *pchName;        4
pp   多级指针                                    int           **ppnData;        4
lp   长指针(VC++自定义)                          char FAR*      *lpchValue;    
pk   const指针(pointer)      const指针           const char     *pkchName;       /
         /* unsigned char *pchData; 单字符    /  unsigned short *pusData;  */
         /* const     int *pknData;           /  unsigned int   *punData;  */
psz  指向以0结尾的字符串指针(C风格字符串)        char *psz   = "Hello World.";   4
sz   以0结尾的字符串(C风格字符串)                char sz[]   = "Hello World.";   13
                                                 char sz[13] = "Hello World.";   13
ach  字符数组                不以0结尾           char achName[2] = {'a', 'b'};   2
-------------------------------------------------------------------------------------
t    typedef自定义类型 union、struct结构体等类型 TNameInfo      tName;           /
pt   自定义类型指针    union、struct结构体指针等 PTNameInfo     *ptName;         /
-------------------------------------------------------------------------------------
a    Array数组               数组                char           achName[20];     /
aa   二维Array数组           多位数组            unsigned char  aachName[4][2];  /
-------------------------------------------------------------------------------------
ap   存放指针的数组          存放指针的数组      char           *apchName[2];    /
pa   指向数组的指针          指向数组的指针      unsigned char  (*paucName)[2];  /
-------------------------------------------------------------------------------------
h    Windows对象句柄(VC++自定义)                 HWND           hWnd
v    void类型                                    void           *pvValue;        4
k    const类型                                   const int      knValue;
en   enum枚举类型            枚举类型            EN_NAME        enName;          4
c    class类                 class类             CName          cName;           /
-------------------------------------------------------------------------------------
pf   函数指针(pointer func)  函数指针            typedef int (*pfMsgFunc)(int type);
-------------------------------------------------------------------------------------
s_   静态变量(static)        静态变量            static int     s_nValue;
g_   全局变量(global)        全局变量            int            g_nValue;
m_   类的数据成员(member)    类的数据成员        int            m_nValue;
-------------------------------------------------------------------------------------

字面常量值:
单精度浮点                float      1.0F/f
双精度浮点                           1.0
扩展双精度浮点      long double      1.0L
整型                (unsigned) int   3
长整型          (unsigned) long      3L
双字节字符            w_char         L'ab'   L'a'        L'汉'
双字节字符串          w_char *       L"hello world."     L"双字节字符串"
 

宏定义、枚举值: 全部大写字符加下划线(不要以下划线_开头)        #define  MAX_LEN 256       //不推荐#define  _MAX_LEN 256 
类名:          C开头,首字母大写                              class    CMyClass{... ...};
结构体、联合体: T开头,首字母大写(包括用户自定义类型)          struct   TMySTruct{... ...};  union TMyUnion{... ...};
枚举:          EM_开头,全部大写字符加下划线                  enum     EM_MY_ENUM{SUNDAY, MONDY, TUESDAY};     
函数名:        首字母大写(函数体不要超过200行),动词或动名    int MyFunction(const char *pkchParam, const int &rknNum){... ...}
虚函数:        Do开头                                         virtual int DoFunction();
回调函数:      On开头                                         void OnTimer(int nParam);
变量名          前缀加首字符大写(不要出现重名、相似名称)       int nTotalValue;  //名称超过30个字母时应缩写,并注释说明
                对于某些用途简单明了的局部变量,也可以使用简化的方式,如:i, j, k, x, y, z


备注:C++中,多用const, 尽可能不用宏定义#define;
      以下划线_或双下划线__开头的宏名,已为编译器预留,用户自定义的宏名最好不要以下划线_或双下划线__开头.
      除非不得已,否则应该尽可能少使用全局变量。
      每行只写一句代码。
      操作符之间应适当空格(规则略)。
      缩进最好用4个空格代替Tab键。

====================================================================================

VC常用前缀列表:
前缀     类型     描述     例子
ch   char 8位字符   chGrade
ch   TCHAR     16位UNICODE类型字符     chName
b   BOOL     布尔变量     bEnabled
n   int   整型(其大小由操作系统决定)     nLength
n   UINT     无符号整型(其大小由操作系统决定)     nLength
w   WORD     16位无符号整型   wPos
l     LONG     32位有符号整型   lOffset
dw   DWORD     32位无符号整型     dwRange
p   *     Ambient memory model pointer 内存模块指针,指针变量   pDoc
lp   FAR*     长指针     lpDoc
lpsz LPSTR     32位字符串指针     lpszName
lpsz LPCSTR     32位常量字符串指针     lpszName
lpsz LPCTSTR     32位UNICODE类型常量指针     lpszName
h   handle     Windows对象句柄     hWnd
lpfn (*fn)()     回调函数指针 Callback Far pointer to CALLBACK function     lpfnAbort

====================================================================================
Windows对象名称缩写:

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     hPalette;     CPalette*     pPalette;
HRGN   hRgn;     CRgn*     pRgn;
HMENU hMenu;     CMenu*     pMenu;
HWND   hCtl;     CStatic*     pStatic;
HWND   hCtl;     CButton*     pBtn;
HWND   hCtl;     CEdit*     pEdit;
HWND   hCtl;     CListBox*     pListBox;
HWND   hCtl;     CComboBox*     pComboBox;

====================================================================================
VC常用宏定义命名列表:

前缀     符号类型     符号例子     范围
IDR_     标识多个资源共享的类型     IDR_MAINFRAME     1~0x6FFF
IDD_     对话框资源(Dialog)     IDD_SPELL_CHECK     1~ 0x6FFF
HIDD_   基于对话框的上下文帮助     HIDD_SPELL_CHECK     0x20001~0x26FF
IDB_     位图资源(Bitmap)     IDB_COMPANY_LOGO     1~0x6FFF
IDC_     光标资源(Cursor)     IDC_PENCIL   1~0x6FFF
IDI_     图标资源(Icon)     IDI_NOTEPAD 1~0x6FFF
ID_、IDM_     工具栏或菜单栏的命令项     ID_TOOLS_SPELLING     0x8000~0xDFFF
HID_     命令上下文帮助     HID_TOOLS_SPELLING     0x18000~0x1DFFF
IDP_     消息框提示文字资源     IDP_INVALID_PARTNO     8~0xDFFF
HIDP_   消息框上下文帮助     HIDP_INVALID_PARTNO     0x30008~0x3DFFF
IDS_     字符串资源(String)     IDS_COPYRIGHT     1~0x7FFF
IDC_     对话框内的控制资源     IDC_RECALC   8~0xDFFF

====================================================================================
Microsoft MFC宏命名规范

名称     类型
_AFXDLL     唯一的动态连接库(Dynamic Link Library,DLL)版本
_ALPHA 仅编译DEC Alpha处理器
_DEBUG 包括诊断的调试版本
_MBCS   编译多字节字符集
_UNICODE     在一个应用程序中打开Unicode
AFXAPI MFC提供的函数
CALLBACK     通过指针回调的函数

库标识符命名法
标识符   值和含义
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

资源下载链接为: https://pan.quark.cn/s/22ca96b7bd39 在当今的软件开发领域,自动化构建与发布是提升开发效率和项目质量的关键环节。Jenkins Pipeline作为一种强大的自动化工具,能够有效助力Java项目的快速构建、测试及部署。本文将详细介绍如何利用Jenkins Pipeline实现Java项目的自动化构建与发布。 Jenkins Pipeline简介 Jenkins Pipeline是运行在Jenkins上的一套工作流框架,它将原本分散在单个或多个节点上独立运行的任务串联起来,实现复杂流程的编排与可视化。它是Jenkins 2.X的核心特性之一,推动了Jenkins从持续集成(CI)向持续交付(CD)及DevOps的转变。 创建Pipeline项目 要使用Jenkins Pipeline自动化构建发布Java项目,首先需要创建Pipeline项目。具体步骤如下: 登录Jenkins,点击“新建项”,选择“Pipeline”。 输入项目名称和描述,点击“确定”。 在Pipeline脚本中定义项目字典、发版脚本和预发布脚本。 编写Pipeline脚本 Pipeline脚本是Jenkins Pipeline的核心,用于定义自动化构建和发布的流程。以下是一个简单的Pipeline脚本示例: 在上述脚本中,定义了四个阶段:Checkout、Build、Push package和Deploy/Rollback。每个阶段都可以根据实际需求进行配置和调整。 通过Jenkins Pipeline自动化构建发布Java项目,可以显著提升开发效率和项目质量。借助Pipeline,我们能够轻松实现自动化构建、测试和部署,从而提高项目的整体质量和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值