Microsoft公司的匈牙利法命名规则

合集下载

veilog 语言书写规范

veilog 语言书写规范

2.5.1 信号命名规则信号命名规则在团队开发中占据着重要地位,统一、有序的命名能大幅减少设计人员之间的冗余工作,还可便于团队成员代码的查错和验证。

比较著名的信号命名规则当推Microsoft公司的“匈牙利”法,该命名规则的主要思想是“在变量和函数名中加入前缀以增进人们对程序的理解”。

例如所有的字符变量均以ch为前缀,若是常数变量则追加前缀c。

信号命名的整体要求为:命名字符具有一定的意义,直白易懂,且项目命名规则唯一。

对于HDL设计,设计人员还需要注意以下命名规则。

1.系统级信号的命名系统级信号指复位信号,置位信号,时钟信号等需要输送到各个模块的全局信号。

系统信号以字符串sys或syn开头;时钟信号以clk开头,并在后面添加相应的频率值;复位信号一般以rst或reset开头;置位信号为st或set开头。

典型的信号命名方式如下所示:wire [7:0] sys_dout, sys_din;wire clk_32p768MHz;wire reset;wire st_counter;2.低电平有效的信号命名低电平有效的信号后一律加下划线和字母n。

如:wire SysRst_n;wire FifoFull_n;3.过锁存器锁存后的信号经过锁存器锁存后的信号,后加下划线和字母r,与锁存前的信号区别。

如:信号CpuRamRd信号,经锁存后应命名为CpuRamRd_r。

低电平有效的信号经过锁存器锁存后,其命名应在_n后加r。

如:CpuRamRd_n信号,经锁存后应命名为CpuRamRd_nr多级锁存的信号,可多加r以标明。

如:CpuRamRd信号,经两级触发器锁存后,应命名为CpuRamR d_rr。

2.5.2 模块命名规则HDL语言的模块类似于C语言中的函数,可采用C语言函数的大多数规则。

模块的命名应该尽量用英文表达出其完成的功能。

遵循动宾结构的命名法则,函数名中动词在前,并在命名前加入函数的前缀,函数名的长度一般不少于2个字母。

匈牙利命名规则

匈牙利命名规则

作用域前缀标明一个变量的可见范围。作用 域可以有如下几种:
前缀
说明

局部变量
m_
类的成员变量(member)
sm_
类的静态成员变量
(static member)
s_
静态变量(static)
g_
外部全局变量(global)
sg_
静态全局变量(static
gloБайду номын сангаасal)
gg_
进程间共享的共享数据
段全局变量(global
如果_UNICODE 定义,则为 32 位
lpsz LPCTSTR
lpszName
常量字符串指针
h handle Windows 对象句柄
hWnd
lpfn callback 指向 CALLBACK 函数的远指针
?
if
输入文件流
ifDataFile
of
输出文件流
ofStuFile
sz
以"\0"结束的字符串
对未给出的变量类型要求提出并给出命名建议给技术委员会。
②、指针变量命名的基本原则为: 对一重指针变量的基本原则为: “p”+变量类型前缀+命名 如一个 float*型应该表示为 pfStat 对多重指针变量的基本规则为: 二重指针: “pp”+变量类型前缀+命名 三重指针: “ppp”+变量类型前缀+命名 ...... ③、全局变量用 g_开头,如一个全局的长型变量定义为 g_lFailCount,即:变量名 =g_+变量类型+变量的英文意思(或缩写) ④、静态变量用 s_开头,如一个静态的指针变量定义为 s_plPerv_Inst,即: 变量名 =s_+变量类型+变量的英文意思(或缩写) ⑤、成员变量用 m_开头,如一个长型成员变量定义为 m_lCount;即:变量名=m_+ 变量类型+变量的英文意思(或缩写) ⑥、对枚举类型(enum)中的变量,要求用枚举变量或其缩写做前缀。并且要

C语言常见命名规范

C语言常见命名规范

C 语言常见命名规范
1 常见命名规则
比较着名的命名规则首推匈牙利命名法,
这种命名方法是由Microsoft 程序员查尔斯-西蒙尼(Charles Simonyi) 提出的。

其主要思想是在变量和函数名中加入前缀以增进人们对程序的理解。

匈牙利命名法关键是:标识符的名字以一个或者多个小写字母开头作为前缀;
前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量
的用途。

例如:lpszStr, 表示指向一个以’\0’结尾的字符串(sz)的长指针(lp)变量。

骆驼(Camel)命名法近年来越来越流行,
在许多新的函数库和Java 这样的平台下使用得当相多。

骆驼命名法,正如它的名称所表示的那样,指的是混合使用大小写字母来。

微软命名规则

微软命名规则
WS Window style
Identifier Meaning
HINSTANCE Handle to an "instance"—the program itself
HWND Handle to a window
HDC Handle to a device context
c char or WCHAR or TCHAR
w WORD (unsigned short)
l LONG (long)
dw DWORD (unsigned long)
fn function
s string
sz string terminated by 0 character
h handle
p pointer
c语言论坛--命名规则(转)
w WORD 16位无符号整型 wPos
l LONG 32位有符号整型 lOffset
dw DWORD 32位无符号整型 dwRange
CW Create window option
DT Draw text option
IDI ID number for an icon
IDC ID number for a cursor
MB Message box options
SND Sound option
WM Window message
s String 字符串
sz Zero terminated String 以0结尾的字符串
tm Text metric 文本规则
cx Count of x (Short) x的集合(短整数)
dw DWORD (unsigned long) 双字(无符号长整数)

匈牙利命名规则和共性规则

匈牙利命名规则和共性规则

匈牙利命名法是一种编程时的命名规范。

基本原则是:变量名=属性+类型+对象描述,其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分。

命名要基于容易记忆容易理解的原则。

保证名字的连贯性是非常重要的。

举例来说,表单的名称为form,那么在匈牙利命名法中可以简写为frm,则当表单变量名称为Switchboard时,变量全称应该为frmSwitchboard。

这样可以很容易从变量名看出Switchboard 是一个表单,同样,如果此变量类型为标签,那么就应命名成lblSwitchboard。

可以看出,匈牙利命名法非常便于记忆,而且使变量名非常清晰易懂,这样,增强了代码的可读性,方便各程序员之间相互交流代码。

这种命名技术是由一位能干的Microsoft程序员查尔斯·西蒙尼(Charles Simonyi) 提出的,他出生在匈牙利。

在Microsoft 公司中和他一起工作的人被教会使用这种约定。

这对他们来说一切都很正常。

但对那些Simonyi 领导的项目组之外的人来说却感到很奇特,他们认为这是死板的表达方式,甚至说带有这样奇怪的外观是因为它是用匈牙利文写的。

从此这种命名方式就被叫做匈牙利命名法。

据说这种命名法是一位叫Charles Simonyi 的匈牙利程序员发明的,后来他在微软呆了几年,于是这种命名法就通过微软的各种产品和文档资料向世界传播开了。

现在,大部分程序员不管自己使用什么软件进行开发,或多或少都使用了这种命名法。

这种命名法的出发点是把量名变按:属性+类型+对象描述的顺序组合起来,以使程序员作变量时对变量的类型和其它属性有直观的了解,下面是HN变量命名规范,其中也有一些是我个人的偏向:属性部分全局变量g_常量c_c++类成员变量m_静态变量s_类型部分指针p函数fn无效v句柄h长整型l布尔b浮点型(有时也指文件)f双字dw字符串sz短整型n双精度浮点d计数c(通常用cnt)字符ch(通常用c)整型i(通常用n)字节by字w实型r无符号u描述部分最大Max最小Min初始化Init临时变量T(或Temp)源对象Src目的对象Dest这里顺便写几个例子:hwnd :h 是类型描述,表示句柄,wnd 是变量对象描述,表示窗口,所以hwnd 表示窗口句柄;pfnEatApple :pfn 是类型描述,表示指向函数的指针,EatApple 是变量对象描述,所以它表示指向EatApple 函数的函数指针变量。

匈牙利,骆驼,帕斯卡命名法规范

匈牙利,骆驼,帕斯卡命名法规范

匈牙利命名法,骆驼命名法,帕斯卡命名法,C#命名规范一、匈牙利(Hungarian)命名法:广泛应用于象Microsoft Windows这样的环境中。

Windows 编程中用到的变量(还包括宏)的命名规则匈牙利命名法,这种命名技术是由一位能干的 Microsoft 程序员查尔斯·西蒙尼(Charles Simonyi) 提出的。

匈牙利命名法通过在变量名前面加上相应的小写字母的符号标识作为前缀,标识出变量的作用域,类型等。

这些符号可以多个同时使用,顺序是先m_(成员变量),再指针,再简单数据类型,再其他。

例如:m_lpszStr, 表示指向一个以0字符结尾的字符串的长指针成员变量。

匈牙利命名法关键是:标识符的名字以一个或者多个小写字母开头作为前缀;前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量的用途。

在windowsForm 应用程序中,控件命名采用匈牙利命名法。

如TextBox类型,前缀加txt,例如命名为txtCustomerName,txtAddress。

Button类型, 前缀加btn,例如btnSave,btnDelete。

匈牙利命名法中常用的小写字母的前缀:前缀类型a 数组 (Array)b 布尔值 (Boolean)by 字节 (Byte)c 有符号字符 (Char)cb 无符号字符 (Char Byte,没有多少人用)cr 颜色参考值 (ColorRef)cx,cy 坐标差(长度 ShortInt)dw Double Wordfn 函数h Handle(句柄)i 整型l 长整型 (Long Int)lp Long Pointerm_ 类的成员n 短整型 (Short Int)np Near Pointerp Pointer(指针)s 字符串型 (string)sz 以null做结尾的字符串型 (String with Zero End)w Word二、骆驼(camel)命名法:骆驼式命令法,正如它的名称所表示的那样,是指混合使用大小写字母来构成变量和函数的名字。

匈牙利命名法

匈牙利命名法

匈牙利命名法《匈牙利命名法》是一种给变量命名的一种最常见的编程指导原则。

它的目的是确保变量的意义可以在代码中被明确理解,从而减少出错的可能性。

它是由古典程序员Charles Simonyi所提出的,其中他最著名的功绩是在Microsoft Word中开发出维护模式和保存文档的功能。

匈牙利命名法有三个基本原则,这些原则被称为前缀、中缀和后缀。

前缀指的是变量的类型,中缀指的是变量的状态,后缀指的是变量的动作。

这三个基本原则的核心思想是:通过这三个组成部分,可以将变量的功能和意义表达清楚,从而使得程序员容易理解变量的用途。

这种方式可以让我们的代码变得清晰,简易,更加容易维护和修改。

匈牙利命名法有三个类型:驼峰命名法:这种命名法有前缀和后缀,前缀表示变量的类型,而后缀则指变量的动作。

如stringUserName表示一个字符串类型的变量,它的动作是用户名。

下划线命名法:这种命名法有前缀和后缀,不同于驼峰命名法,下划线命名法有两个下划线符号隔开,前缀表示变量的类型,后缀表示变量的动作。

如string__user_name表示一个字符串类型的变量,它的动作是用户名。

静态命名法:这种命名法有前缀和中缀,前缀表示变量的类型,而中缀指变量的状态。

如StringUserIsAdmin表示一个字符串类型的变量,它的状态是用户是管理员。

在实际应用中,大多数程序员会选择驼峰命名法,因为它的命名方式比较清晰,也比较容易理解。

驼峰命名法也是C语言编程中最常用的命名方式,它可以让程序员在编程过程中更容易地控制变量的使用。

正确地使用匈牙利命名法可以帮助我们写出更好、更清晰、更易于维护的代码。

它有助于减少程序员出现调试错误的可能性,也能够让代码更容易被他人理解。

对于那些拥有良好命名习惯的程序员来说,他们可以更快速地开发出良好的代码。

总而言之,使用匈牙利命名法可以极大地提升开发效率,提高程序的可读性和可维护性。

什么是好的程序

什么是好的程序
b. 在标识符内,前缀以后就是一个或者多个第一 个字母大写的单词,这些单词清楚地指出了 该标识符的作用。
推荐一种C程序标识符命名法
1)变量命名加前缀
c uc s n u l dw b sz f h d char unsigned char short int unsigned int long unsigned long 取值只为真和假的整型变量 如 bValid 以’\0‟结尾的字符串或字符数组 浮点数 (float) HANDLE(句柄) double
匈牙利命名法、GNU编程风格、Java 命名规则, Pascal 命名规则匈牙利命名法: 匈牙利命名法是由Microsoft的著名开发人员、Excel的 主要设计者查尔斯· 西蒙尼在他的博士论文中提出来 的,由于西蒙尼的祖籍是匈牙利,所以这种命名法 叫匈牙利命名法。
标识符的命名
匈牙利命名法为C程序标识符的命名定义了一种 非常标准化的方式,这种命名方式是以两条 规则为基础的: a. 变量的名字以一个或者多个小写字母前缀开头, 前缀能够体现变量数据类型、作用域等信息。
推荐一种C程序标识符命名法
p
psz pn m_
指针
指向字符串的指针 整型指针 类成员变量
g_
a fp
全局变量
数组 文件指针 FILE *
e
g_
enum类型
全局变量 int Sum( int x_ ,int y_){
参数后面加 ‘_‟,如
}
推荐一种C程序标识符命名法
2)变量名中单词开头字母大写,其他字母小写
xp = 2 * k < ( n-m) ? c[k+1] : d[k--];
if( 2*k < (n-m))

C++编程匈牙利命名法

C++编程匈牙利命名法

匈牙利命名法匈牙利命名法是一种编程时的命名规范。

基本原则是:变量名=属性+类型+对象描述,其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分。

命名要基于容易记忆容易理解的原则。

保证名字的连贯性是非常重要的。

据说这种命名法是一位叫Charles Simonyi的匈牙利程序员发明的,后来他在微软呆了几年,于是这种命名法就通过微软的各种产品和文档资料向世界传播开了。

现在,大部分程序员不管自己使用什么软件进行开发,或多或少都使用了这种命名法。

这种命名法的出发点是把量名变按:属性+类型+对象描述的顺序组合起来,以使程序员作变量时对变量的类型和其它属性有直观的了解,下面是HN变量命名规范,其中也有一些是我个人的偏向:属性部分:全局变量g_常量c_c++类成员变量m_静态变量s_类型部分:指针p函数fn无效v句柄h长整型l布尔b浮点型(有时也指文件)f双字dw字符串sz短整型n双精度浮点d计数c(通常用cnt)字符ch(通常用c)整型i(通常用n)字节by字w实型r无符号u描述部分最大Max最小Min初始化Init临时变量T(或Temp)源对象Src目的对象Dest这里顺便写几个例子:hwnd:h是类型,表示句柄描述,wnd是变量对象描述,表示窗口,所以hwnd表示窗口句柄;pfnEatApple:pfn是类型描述,表示指向函数的指针,EatApple是变量对象描述,所以它表示指向EatApple函数的函数指针变量。

g_cch:g_是属性描述,表示全局变量,c和ch分别是计数类型和字符类型,一起表示变量类型,这里忽略了对象描述,所以它表示一个对字符进行计数的全局变量。

上面就是HN命名法的一般规则。

小结:匈牙利命名法匈牙利命名法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;一般前缀命名规范前缀类型实例C类或结构CDocument,CPrintInfom_成员变量m_pDoc,m_nCustomers变量命名规范前缀类型描述实例ch char8位字符chGradech TCHAR如果_UNICODE定义,则为16位字符chNameb BOOL布尔值bEnablen int整型(其大小依赖于操作系统)nLengthn UINT无符号值(其大小依赖于操作系统)nHeightw WORD16位无符号值wPosl LONG32位有符号整型lOffsetdw DWORD32位无符号整型dwRangep*指针pDoclp FAR*远指针lpszNamelpsz LPSTR32位字符串指针lpszNamelpsz LPCSTR32位常量字符串指针lpszNamelpsz LPCTSTR如果_UNICODE定义,则为32位常量字符串指针lpszName h handle Windows对象句柄hWndlpfn callback指向CALLBACK函数的远指针前缀符号类型实例范围IDR_不同类型的多个资源共享标识IDR_MAIINFRAME1~0x6FFFIDD_对话框资源IDD_SPELL_CHECK1~0x6FFFHIDD_对话框资源的Help上下文HIDD_SPELL_CHECK0x20001~0x26FF IDB_位图资源IDB_COMPANY_LOGO1~0x6FFFIDC_光标资源IDC_PENCIL1~0x6FFFIDI_图标资源IDI_NOTEPAD1~0x6FFFID_来自菜单项或工具栏的命令ID_TOOLS_SPELLING0x8000~0xDFFF HID_命令Help上下文HID_TOOLS_SPELLING0x18000~0x1DFFFIDP_消息框提示IDP_INVALID_PARTNO8~0xDEEFHIDP_消息框Help上下文HIDP_INVALID_PARTNO0x30008~0x3DEFF IDS_串资源IDS_COPYRIGHT1~0x7EEFIDC_对话框内的控件IDC_RECALC8~0xDEEFMicrosoft MFC宏命名规范名称类型_AFXDLL唯一的动态连接库(Dynamic Link Library,DLL)版本_ALPHA仅编译DEC Alpha处理器_DEBUG包括诊断的调试版本_MBCS编译多字节字符集_UNICODE在一个应用程序中打开UnicodeAFXAPI MFC提供的函数CALLBACK通过指针回调的函数库标识符命名法标识符值和含义u ANSI(N)或Unicode(U)d调试或发行:D=调试;忽略标识符为发行。

匈牙利命名法及实用规则.

匈牙利命名法及实用规则.

一、匈牙利命名法:Windows 编程中用到的变量(还包括宏的命名规则匈牙利命名法,这种命名技术是由一位能干的 Microsoft 程序员查尔斯·西蒙尼 (Charles Simonyi 提出的。

基本原则是:变量名=属性+类型+对象描述⑴属性部分:全局变量:g_常量 :c_类成员变量:m_⑵类型部分:数组:a布尔型:b byte: bychar: c 字节计数 : cb 颜色引用值 : cr 坐标差(长度 : cx,cy双字 (DWORD: dw浮点型:f 函数 : fn句柄:h整数 (integer: i长整型 (long: l long 型指针 : lp短整型:n near 指针 : np指针:pstring: s 用 '\0'终止的字符串 : sz文本内容 : tm无符号:uWord: w坐标 : x,y⑶描述部分:初始化:Init临时变量:Tmp目的对象:Dst源对象:Src窗口:Wnd下边举例说明:hwnd :h 表示句柄, wnd 表示窗口,合起来为“窗口句柄” 。

m_bFlag:m 表示成员变量, b 表示布尔,合起来为:“某个类的成员变量,布尔型,是一个状态标志” 。

1,变量命名;2,常量命名、宏定义;3,资源名字定义格式;4,函数命名和命名空间、类的命名、接口的命名;5,结构体命名;6,控件的命名;7,注释;本文来自 CSDN 博客,转载请标明出处:/stkim/archive/2004/09/29/120347.aspx 匈牙利命名法通过在变量名前面加上相应的小写字母的符号标识作为前缀, 标识出变量的作用域, 类型等。

这些符号可以多个同时使用, 顺序是先 m_(成员变量 , 再指针, 再简单数据类型, 再其他。

例如:m_lpszStr, 表示指向一个以 0字符结尾的字符串的长指针成员变量。

匈牙利命名法关键是:标识符的名字以一个或者多个小写字母开头作为前缀;前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量的用途。

匈牙利命名法

匈牙利命名法

匈⽛利命名法匈⽛利命名法变量(还包含宏)的命名规则,⽐較系统和彻底的有 Windows 编程中⽤到的匈⽛利命名法。

匈⽛利命名法通过在变量名前⾯加上对应的⼩写字母的符号标识作为前缀,标识出变量的作⽤域,类型等。

这些符号能够多个同⼀时候使⽤,顺序是先m_(成员变量),再指针,再简单数据类型,再其它。

⽐如:m_lpszStr, 表⽰指向⼀个以0字符结尾的字符串的长指针成员变量。

有关匈⽛利命名法的⼀点有意思的说明是它的名字的由来。

这样的命名技术是由⼀位能⼲的 Microsoft 程序猿查尔斯·西蒙尼(Charles Simonyi) 提出的,他出⽣在匈⽛利。

在 Microsoft 公司中和他⼀起⼯作的⼈被教会使⽤这样的约定。

这对他们来说⼀切都⾮常正常。

但对那些 Simonyi领导的项⽬组之外的⼈来说却感到⾮常奇特,他们觉得这是死板的表达⽅式,甚⾄说代有这样奇怪的外观是由于它是⽤匈⽛利⽂写的。

从此这样的命名⽅式就被叫做匈⽛利命名法。

匈⽛利命名法关键是:标识符的名字以⼀个或者多个⼩写字母开头作为前缀;前缀之后的是⾸字母⼤写的⼀个单词或多个单词组合,该单词要指明变量的⽤途。

匈⽛利命名法中经常使⽤的⼩写字母的前缀前 缀类 型a数组 (Array)b布尔值 (Boolean)by字节 (Byte)c有符号字符 (Char)cb⽆符号字符 (Char Byte,没有多少⼈⽤)cr颜⾊參考值 (ColorRef)cx,cy坐标差(长度 ShortInt)dw Double Wordfn函数h Handlei整型l长整型 (Long Int)lp Long Pointerm_类的成员n短整型 (Short Int)np Near Pointerp Pointers字符串型sz以null做结尾的字符串型 (String with Zero End)w Word可是在不论什么情况下,都硬性规定使⽤匈⽛利命名法是迂腐的。

匈牙利命名法——优缺点

匈牙利命名法——优缺点
HWND hCtl; CComboBox* pComboBox;
HWND hCtl; CScrollBar* pScrollBar;
HSZ hszStr; CString pStr;
POINT pt; CPoint pt;
SIZE size; CSize size;
RECT rect; CRect rect;
p * 指针 pDoc
lp FAR* 远指针 lpszName
lpsz LPSTR 32位字符串指针 lpszName
lpsz LPCSTR 32位常量字符串指针 lpszName
lpsz LPCTSTR 如果_UNICODE定义,则为32位常量字符串指针 lpszName
_DEBUG 包括诊断的调试版本
_MBCS 编译多字节字符集
_UNICODE 在一个应用程序中打开Unicode
AFXAPI MFC提供的函数
CALLBACK 通过指针回调的函数
库标识符命名法 标识符 值和含义
u ANSI(N)或Unicode(U)
d 调试或发行:D = 调试;忽略标识符为发行。
ID_ 来自菜单项或工具栏的命令 ID_xDFFF
HID_ 命令Help上下文 HID_TOOLS_SPELLING 0x18000~0x1DFFF
IDP_ 消息框提示 IDP_INVALID_PARTNO 8~0xDEEF
HIDP_ 消息框Help上下文 HIDP_INVALID_PARTNO 0x30008~0x3DEFF
匈牙利命名法
匈牙利命名法是一种编程时的命名规范。基本原则是:变量名=属性+类型+对象描述,其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分。命名要基于容易记忆容易理解的原则。保证名字的连贯性是非常重要的。

编码规范

编码规范

编码规范1. 目的 (2)2. 使用范围 (2)3. 基本要求 (2)4. 可读性要求 (2)5. 结构化要求 (3)6. 正确性与容错性要求 (3)7. 可重用性要求 (3)8. 命名规范 (4)8.1. 匈牙利命名法 (4)8.2. 基本规则 (4)8.3. 前缀表 (4)8.4. 使用样例 (5)9. 编码规格 (6)9.1. 基本规则 (6)9.2. 新增加文件的注释 (6)9.3. 新增加函数的注释 (7)9.4. 增加代码的注释 (7)9.5. 删除代码的注释 (8)9.6. 修改代码的注释 (8)9.7. 新增加的数据结构及全局常量和全局变量的注释 (8)10. 缩进的规则 (9)10.1. 控制结构的缩进 (9)10.2. 缩进的限制 (9)11. 其它注意事项 (9)1.目的良好的编程风格是提高程序可靠性非常重要的手段,也是多人合作开发项目的技术基础。

在软件编程过程中,如果每个程序员都按自己的习惯和风格编写程序,这种因人而异的程序风格势必降低程序的可读性,对软件的测试、交流、重用以及软件的维护产生极为不利的影响。

为了解决这个问题,最终提高开发效率,必须执行编码规范。

本规范在遵照ISO9001中源代码编写规范的基础上,将其中部分内容具体化。

目的在于通过该规范来避免不好的编程风格,增强程序的易读性,便于源代码的维护和管理。

2.使用范围本规范针对应用C/C++语言进行编程而制定,适用于本公司研发部相关项目C/C++程序的软件源代码的编写。

因此,在进行开发的编码阶段中,程序编码人员应严格遵循本规范。

3.基本要求●程序结构清析,简单易懂;●打算干什么,要简单、直接了当,代码精简,避免垃圾程序;●尽量使用标准库函数和公共函数;●不要随意定义全局变量,尽量使用局部变量;●使用括号以避免二义性;4.可读性要求●普通代码,可读性第一、效率第二;●保持注释与代码完全一致;●每个源程序文件,都有文件头说明;●每个函数,都有函数头说明;●主要变量(结构、联合、类或对象)定义或引用时,注释能反映其含义;●常量定义(DEFINE)有相应说明;●利用缩进来显示程序的逻辑结构,缩进量一致并以Tab键为单位;●循环、分支层次不要超过五层;●注释可以与语句在同一行,也可以在上行;●空行和空白字符也是一种特殊注释;●一目了然的语句不加注释;●注释的作用范围可以为:定义、引用、条件分支以及一段代码;●处理过程的每个阶段都有相关注释说明;●在典型算法前都有注释;●注释总是加在程序的需要一个概括性说明或不易理解或易理解错的地方。

匈牙利命名规则

匈牙利命名规则

匈牙利命名规则匈牙利命名规则(Hungariannotation)是一种命名变量和函数的方法,最初由Microsoft公司的Charles Simonyi于1970年代发明。

该规则的名称来源于Simonyi的出生地匈牙利。

在匈牙利命名规则中,变量名的开头使用一个或多个小写字母来表示变量的类型,后面跟随着一个大写字母开头的单词或短语来表示变量的用途。

例如,一个整型变量可以被命名为iCount,一个字符串变量可以被命名为strName。

这种命名方法使得变量的类型和用途一目了然,提高了代码的可读性和可维护性。

匈牙利命名规则还包括一些规则和约定,例如:1.前缀表示变量类型变量名的前缀表示变量的类型。

例如,i表示整型,f表示浮点型,b表示布尔型,s表示字符串型,p表示指针等等。

2.后缀表示变量用途变量名的后缀表示变量的用途。

例如,Count表示计数器,Index 表示索引,Length表示长度,Name表示名称,Ptr表示指针等等。

3.单词首字母大写变量名的后缀单词的首字母大写,以便更容易识别变量的用途。

例如,Count表示计数器,而count则表示一个普通的变量名。

4.缩写为了避免变量名过长,可以使用缩写来表示变量的类型和用途。

例如,iCount可以缩写为ic,strName可以缩写为sn。

匈牙利命名规则的优点在于它可以使代码更加清晰易懂,尤其是在大型项目中。

它还可以帮助程序员快速识别变量的类型和用途,从而减少错误和调试时间。

然而,它也有一些缺点。

例如,变量名可能会变得过长和难以阅读,而且在多种语言中使用时可能会出现不一致性。

在现代编程语言中,匈牙利命名规则已经不再普遍使用,因为许多语言已经提供了更好的类型检查和自动化重构工具。

例如,Java和C#都具有强类型检查和自动生成代码的功能,因此不需要使用匈牙利命名规则来辅助类型检查。

总之,匈牙利命名规则是一种有用的命名约定,可以提高代码的可读性和可维护性。

然而,它并不适用于所有情况,因此需要根据具体情况进行决策。

汇编语言代码规范

汇编语言代码规范

汇编语⾔代码规范汇编语⾔代码规范随着程序功能的增加和版本的提⾼,程序越来越复杂,源⽂件也越来越多,风格规范的源程序会对软件的升级、修改和维护带来极⼤的⽅便,要想开发⼀个成熟的软件产品,必须在编写源程序的时候就有条不紊,细致严谨。

在编程中,在程序排版、注释、命名和可读性等问题上都有⼀定的规范,虽然编写可读性良好的代码并不是必然的要求(世界上还有难懂代码⽐赛,看谁的代码最不好读懂!),但好的代码风格实际上是为⾃⼰将来维护和使⽤这些代码节省时间。

本节就是对汇编语⾔代码风格的建议。

变量和函数的命名1. 匈⽛利表⽰法匈⽛利表⽰法主要⽤在变量和⼦程序的命名,这是现在⼤部分程序员都在使⽤的命名约定。

“匈⽛利表⽰法”这个奇怪的名字是为了纪念匈⽛利籍的Microsoft 程序员Charles Simonyi,他⾸先使⽤了这种命名⽅法。

匈⽛利表⽰法⽤连在⼀起的⼏个部分来命名⼀个变量,格式是类型前缀加上变量说明,类型⽤⼩写字母表⽰,如⽤h表⽰句柄,⽤dw表⽰double word,⽤sz表⽰以0结尾的字符串等,说明则⽤⾸字母⼤写的⼏个英⽂单词组成,如TimeCounter,NextPoint等,可以令⼈⼀眼看出变量的含义来,在汇编语⾔中常⽤的类型前缀有:b 表⽰bytew 表⽰worddw 表⽰dwordh 表⽰句柄lp 表⽰指针sz 表⽰以0结尾的字符串lpsz 表⽰指向0结尾的字符串的指针f 表⽰浮点数st 表⽰⼀个数据结构这样⼀来,变量的意思就很好理解:hWinMain 主窗⼝的句柄dwTimeCount 时间计数器,以双字定义szWelcome 欢迎信息字符串,以0结尾lpBuffer 指向缓冲区的指针stWndClass WNDCLASS结构…很明显,这些变量名⽐count1,abc,commandlinebuffer和FILEFLAG之类的命名要易于理解。

由于匈⽛利表⽰法既描述了变量的类型,⼜描述了变量的作⽤,所以能帮助程序员及早发现变量的使⽤错误,如把⼀个数值当指针来使⽤引发的内存页错误等。

匈牙利命名法

匈牙利命名法
一般前缀命名规范 前缀 类型 实例 C 类或结构 CDocument,CPrintInfo ,
m_ 成员变量 m_pDoc,m_nCustomers ,
匈牙利命名法
下表列出了经常使用的一些变量前缀: c by n i x,y cx,cy b或f 或 w l char 或 WCHAR 或 TCHAR BYTE(即无符号字符 即无符号字符) 即无符号字符 short int int 分别用作x坐标和y坐标 分别用作x坐标和 坐标和y坐标 int 分别用作 长度和 长度 代表“count” 分别用作x长度和 长度;c代表 长度和y长度 代表“ BOOL(int); f代表“flag”; 代表“ 代表 WORD(无符号 无符号short) 无符号 LONG(长整数 长整数) 长整数
匈牙利命名法
下表列出了经常使用的一些变量前缀(续): dw fn s sz h p cb DWORD(无符号长整数 无符号长整数) 无符号长整数 function(函数 函数) 函数 string(串) 串 以\0结束的字符串 结束的字符串 句柄 指针 count of byte
匈牙利命名法
总结:以两条规则为基础
Hale Waihona Puke 1.标识符的名字以一个或者多个小写字母开头,用 这些字母来指定数据类型。 2.在标识符内,前缀以后就是一个或者多个第一个 字母大写的单词,这些单词清楚地指出了源代 码内那个对象的用途。比如,m_szStudentName 表示一个学生名字的类成员变量,数据类型是 字符串型。
匈牙利命名法
之所以叫做匈牙利命名法是为了纪念匈牙利籍 的 Microsoft 程序员 Charles Simonyi 一种命名约定。不是强制的!
匈牙利命名法
变量名以一个或者多个小写字母打头,这些字母表示 变量的数据类型. 比如: iCmdShow 表示 int型的变量 iCmdShow. 函数名用一个大写字母打头. 比如: ShowWindow()

Access 命名规则

Access 命名规则

Access 命名规则:网址:好的命名规则让你受益终生为什么在程序编写中需要遵循一个好的命名规则呢。

首先,统一的命名标准能够让你的代码始终保持一致的风格,便于你自己看懂,也便于与别的开发人员交流和沟通,实际上,这些标准也是一种语言,这是你们沟通最好的媒介,有了它,你甚至不需更多的解释,对方就能看懂你的程序。

1.编程老手可能会长期用隐含错误的方式编程(习惯成自然),发现毛病后都不愿相信那是真的!2.编程高手可以在某一领域写出极有水平的代码,但未必能从全局把握软件质量的方方面面。

3.在团体开发中,一个好的命名规则能够最大限度的实现程序共享,加快开发进度。

让协作者、后继者和自己在现在或将来很久以后,在最短的时间内看清你的程序结构,理解你的设计思路。

从而大大提高代码的可读性、可重用性、可移植性。

4.通过命名注入更多的信息在源代码中,可以使你的程序易读和易于维护,减少一些隐性错误,同时大大缩短你写程序注释和程序文档的时间,因为你的命名实际上已经是一种程序注释。

5.提高与ACCESS对象协作的能力,包括对象的排序,自已函数库的编写,以及查找与替换的能力,例如你更容易把报表和窗体对象、表和查询对象分开并按照一定的规则排序。

6.有利于程序编写工具的开发,可以编写自己的加载项并遵守好的命名规则来加快程序代码的编写、排版以及自动纠错。

如全局查找与替换工具、代码分析与优化工具、报表自动生成工具等等。

7.更易于发现代码的错误并更易于修正错误,当系统的要求实现的功越来越复杂或当代码量到达一定的规模, 不管程序员是否愿意, 出现错误几乎都是不可避免的,但如果大家都遵循一定的编程标准,则可以最大限度地降低错误出现的机率, 而且在出现错误的情况下也能迅速地发现和排除。

8.长期遵循一个好的命名规则能让你长期稳定地编写高质量、高效率和更大型的程序。

LNC for Microsoft Access 命名规则简介:LNC即Leszynski Naming Convention,原来在《The Leszinski/Reddick Guidelines for Access 1.x,2.x》这本白皮书中由Stan Leszynski 和Greg Reddick 推荐使用的命名规则,LNC 开始于Access 1.0这个版本,后来随着ACCESS版本的升级,这个命名规则就被迅速传播开来,在当今ACCESS和VB开发者和开发团体中,它已经成为事实中的命名标准,在国外已经广泛被使用,并被微软推荐使用,它规范了从ACCESS数据库设计、窗体与报表的设计以及程序的编写一整套完整且易用的命名标准,我看过国内许多VB和ACCESS源程序,但很少人,特别在ACCESS程序员中,注意到命名规则并遵循某种命名约定,这给程序交流造成了很大的困难,同时,由于程序员自己没有一套标准的命名规则,在编写过程中随意命名,随着时间的推移,自已都难以阅读和修改以前的程序源码。

C语言格式书写规范

C语言格式书写规范

C语言书写规范指南第1章文件结构每个C程序通常分为两个文件。

一个文件用于保存程序的声明(declaration),称为头文件。

另一个文件用于保存程序的实现(implementation),称为定义(definition)文件。

C程序的头文件以“.h”为后缀,C程序的定义文件以“.c”为后缀。

1.1版权和版本的声明版权和版本的声明位于头文件和定义文件的开头(参见示例1-1),主要内容有:(1)版权信息。

(2)文件名称,标识符,摘要。

(3)当前版本号,作者/修改者,完成日期。

(4)版本历史信息。

/**Copyright(c)2001,吉林大学物理学院无线电*Allrightsreserved.**文件名称:filename.h*文件标识:*摘要:简要描述本文件的内容**当前版本:1.1*作者:输入作者(或修改者)名字*完成日期:2007年7月20日**取代版本:1.0*原作者:输入原作者(或修改者)名字*完成日期:2007年5月10日*/示例1-1版权和版本的声明1.2头文件的结构头文件由三部分内容组成:(1)头文件开头处的版权和版本声明(参见示例1-1)。

(2)预处理块。

(3)函数和类结构声明等。

假设头文件名称为SCL_SPI.h,头文件的结构参见示例1-2。

【规则1-2-1】为了防止头文件被重复引用,应当用#ifndef/#define/#endif结构产生预处理块。

【规则1-2-2】用#include <filename.h>格式来引用标准库的头文件(编译器将从标准库目录开始搜索)。

【规则1-2-3】用#include “filename.h”格式来引用非标准库的头文件(编译器将从用户的工作目录开始搜索)。

【规则1-2-4】#include 后面使用TAB键控制排版。

【规则1-2-5】头文件中只存放“声明”而不存放“定义”【规则1-2-6】全局变量在头文件中声明,在.c文件中定义.h extern in tvalue; 声明。

简单的Windows应用程序命名规则

简单的Windows应用程序命名规则

简单的W i n d o w s应用程序命名规则SANY GROUP system office room 【SANYUA16H-SANYHUASANYUA8Q8-简单的Windows应用程序命名规则作者对“匈牙利”命名规则做了合理的简化,下述的命名规则简单易用,比较适合于Windows应用软件的开发。

l 【规则3-2-1】类名和函数名用大写字母开头的单词组合而成。

例如:class Node; // 类名class LeafNode; // 类名void Draw(void); // 函数名void SetValue(int value); // 函数名l 【规则3-2-2】变量和参数用小写字母开头的单词组合而成。

例如:BOOL flag;int drawMode;l 【规则3-2-3】常量全用大写的字母,用下划线分割单词。

例如:const int MAX = 100;const int MAX_LENGTH = 100;l 【规则3-2-4】静态变量加前缀s_(表示static)。

例如:void Init(…){static int s_initValue; // 静态变量…}l 【规则3-2-5】如果不得已需要全局变量,则使全局变量加前缀g_(表示global)。

例如:int g_howManyPeople; // 全局变量int g_howMuchMoney; // 全局变量l 【规则3-2-6】类的数据成员加前缀m_(表示member),这样可以避免数据成员与成员函数的参数同名。

例如:void Object::SetValue(int width, int height){m_width = width;m_height = height;}l 【规则3-2-7】为了防止某一软件库中的一些标识符和其它软件库中的冲突,可以为各种标识符加上能反映软件性质的前缀。

例如三维图形标准OpenGL 的所有库函数均以gl开头,所有常量(或宏定义)均以GL开头。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Microsoft公司的"匈牙利"法命名规则比较著名的命名规则当推Microsoft公司的"匈牙利"法,该命名规则的主要思想是"在变量和函数名中加入前缀以增进人们对程序的理解"。

例如所有的字符变量均以ch为前缀,若是指针变量则追加前缀p。

如果一个变量由ppch开头,则表明它是指向字符指针的指针。

"匈牙利"法最大的缺点是烦琐,例如int i, j, k;float x, y, z;倘若采用"匈牙利"命名规则,则应当写成int iI, iJ, ik; // 前缀i表示int类型float fX, fY, fZ; // 前缀f表示float类型如此烦琐的程序会让绝大多数程序员无法忍受。

据考察,没有一种命名规则可以让所有的程序员赞同,程序设计教科书一般都不指定命名规则。

命名规则对软件产品而言并不是"成败悠关"的事,我们不要化太多精力试图发明世界上最好的命名规则,而应当制定一种令大多数项目成员满意的命名规则,并在项目中贯彻实施。

3.1 共性规则本节论述的共性规则是被大多数程序员采纳的,我们应当在遵循这些共性规则的前提下,再扩充特定的规则,如3.2节。

l【规则3-1-1】标识符应当直观且可以拼读,可望文知意,不必进行"解码"。

标识符最好采用英文单词或其组合,便于记忆和阅读。

切忌使用汉语拼音来命名。

程序中的英文单词一般不会太复杂,用词应当准确。

例如不要把CurrentV alue写成NowV alue。

l【规则3-1-2】标识符的长度应当符合"min-length && max-information"原则。

几十年前老ANSI C规定名字不准超过6个字符,现今的C++/C不再有此限制。

一般来说,长名字能更好地表达含义,所以函数名、变量名、类名长达十几个字符不足为怪。

那么名字是否越长约好?不见得! 例如变量名maxval就比maxV alueUntilOverflow好用。

单字符的名字也是有用的,常见的如i,j,k,m,n,x,y,z等,它们通常可用作函数内的局部变量。

l【规则3-1-3】命名规则尽量与所采用的操作系统或开发工具的风格保持一致。

例如Windows应用程序的标识符通常采用"大小写"混排的方式,如AddChild。

而Unix应用程序的标识符通常采用"小写加下划线"的方式,如add_child。

别把这两类风格混在一起用。

l【规则3-1-4】程序中不要出现仅靠大小写区分的相似的标识符。

例如:int x, X;// 变量x 与X 容易混淆void foo(int x);// 函数foo 与FOO容易混淆void FOO(float x);l【规则3-1-5】程序中不要出现标识符完全相同的局部变量和全局变量,尽管两者的作用域不同而不会发生语法错误,但会使人误解。

l【规则3-1-6】变量的名字应当使用"名词"或者"形容词+名词"。

例如:float oldV alue;float newV alue;l【规则3-1-7】全局函数的名字应当使用"动词"或者"动词+名词"(动宾词组)。

类的成员函数应当只使用"动词",被省略掉的名词就是对象本身。

例如:DrawBox();// 全局函数box->Draw();// 类的成员函数l【规则3-1-8】用正确的反义词组命名具有互斥意义的变量或相反动作的函数等。

例如:intminV alue;intmaxV alue;intSetV alue(…);intGetV alue(…);2【建议3-1-1】尽量避免名字中出现数字编号,如V alue1,V alue2等,除非逻辑上的确需要编号。

这是为了防止程序员偷懒,不肯为命名动脑筋而导3.2 简单的Windows应用程序命名规则作者对"匈牙利"命名规则做了合理的简化,下述的命名规则简单易用,比较适合于Windows 应用软件的开发。

l【规则3-2-1】类名和函数名用大写字母开头的单词组合而成。

例如:class Node;// 类名class LeafNode;// 类名void Draw(void);// 函数名void SetV alue(int value);// 函数名l【规则3-2-2】变量和参数用小写字母开头的单词组合而成。

例如:BOOL flag;int drawMode;l【规则3-2-3】常量全用大写的字母,用下划线分割单词。

例如:const int MAX = 100;const int MAX_LENGTH = 100;l【规则3-2-4】静态变量加前缀s_(表示static)。

例如:{static int s_initV alue;// 静态变量…}l【规则3-2-5】如果不得已需要全局变量,则使全局变量加前缀g_(表示global)。

例如:int g_howManyPeople;// 全局变量int g_howMuchMoney;// 全局变量l【规则3-2-6】类的数据成员加前缀m_(表示member),这样可以避免数据成员与成员函数的参数同名。

例如:void Object::SetV alue(int width, int height){m_width = width;m_height = height;}l【规则3-2-7】为了防止某一软件库中的一些标识符和其它软件库中的冲突,可以为各种标识符加上能反映软件性质的前缀。

例如三维图形标准OpenGL的所有库函数均以gl开头,所有常量(或宏定义)均以GL开头。

的主要思想是"在变量和函数名中加入前缀以增进人们对程序的理解"。

例如所有的字符变量均以ch为前缀,若是指针变量则追加前缀p。

如果一个变量由ppch开头,则表明它是指向字符指针的指针。

"匈牙利"法最大的缺点是烦琐,例如int i, j, k;float x, y, z;倘若采用"匈牙利"命名规则,则应当写成int iI, iJ, ik; // 前缀i表示int类型float fX, fY, fZ; // 前缀f表示float类型如此烦琐的程序会让绝大多数程序员无法忍受。

据考察,没有一种命名规则可以让所有的程序员赞同,程序设计教科书一般都不指定命名规则。

命名规则对软件产品而言并不是"成败悠关"的事,我们不要化太多精力试图发明世界上最好的命名规则,而应当制定一种令大多数项目成员满意的命名规则,并在项目中贯彻实施。

3.1 共性规则本节论述的共性规则是被大多数程序员采纳的,我们应当在遵循这些共性规则的前提下,再扩充特定的规则,如3.2节。

l【规则3-1-1】标识符应当直观且可以拼读,可望文知意,不必进行"解码"。

标识符最好采用英文单词或其组合,便于记忆和阅读。

切忌使用汉语拼音来命名。

程序中的英文单词一般不会太复杂,用词应当准确。

例如不要把CurrentV alue写成NowV alue。

l【规则3-1-2】标识符的长度应当符合"min-length && max-information"原则。

几十年前老ANSI C规定名字不准超过6个字符,现今的C++/C不再有此限制。

一般来说,长名字能更好地表达含义,所以函数名、变量名、类名长达十几个字符不足为怪。

那么名字是否越长约好?不见得! 例如变量名maxval就比maxV alueUntilOverflow好用。

单字符的名字也是有用的,常见的如i,j,k,m,n,x,y,z等,它们通常可用作函数内的局部变量。

l【规则3-1-3】命名规则尽量与所采用的操作系统或开发工具的风格保持一致。

例如Windows应用程序的标识符通常采用"大小写"混排的方式,如AddChild。

而Unix应用程序的标识符通常采用"小写加下划线"的方式,如add_child。

别把这两类风格混在一起用。

l【规则3-1-4】程序中不要出现仅靠大小写区分的相似的标识符。

例如:int x, X;// 变量x 与X 容易混淆void foo(int x);// 函数foo 与FOO容易混淆void FOO(float x);l【规则3-1-5】程序中不要出现标识符完全相同的局部变量和全局变量,尽管两者的作用域不同而不会发生语法错误,但会使人误解。

l【规则3-1-6】变量的名字应当使用"名词"或者"形容词+名词"。

例如:float value;float oldV alue;float newV alue;l【规则3-1-7】全局函数的名字应当使用"动词"或者"动词+名词"(动宾词组)。

类的成员函数应当只使用"动词",被省略掉的名词就是对象本身。

例如:DrawBox();// 全局函数box->Draw();// 类的成员函数l【规则3-1-8】用正确的反义词组命名具有互斥意义的变量或相反动作的函数等。

例如:intminV alue;intmaxV alue;intSetV alue(…);intGetV alue(…);2【建议3-1-1】尽量避免名字中出现数字编号,如V alue1,V alue2等,除非逻辑上的确需要编号。

这是为了防止程序员偷懒,不肯为命名动脑筋而导3.2 简单的Windows应用程序命名规则作者对"匈牙利"命名规则做了合理的简化,下述的命名规则简单易用,比较适合于Windows 应用软件的开发。

l【规则3-2-1】类名和函数名用大写字母开头的单词组合而成。

例如:class Node;// 类名class LeafNode;// 类名void Draw(void);// 函数名void SetV alue(int value);// 函数名l【规则3-2-2】变量和参数用小写字母开头的单词组合而成。

例如:BOOL flag;int drawMode;l【规则3-2-3】常量全用大写的字母,用下划线分割单词。

例如:const int MAX = 100;const int MAX_LENGTH = 100;l【规则3-2-4】静态变量加前缀s_(表示static)。

例如:void Init(…){static int s_initV alue;// 静态变量…}l【规则3-2-5】如果不得已需要全局变量,则使全局变量加前缀g_(表示global)。

相关文档
最新文档