常用变量命名规则

常用变量命名规则
常用变量命名规则

常用变量命名规则

变量的命名方法【Hungarian】【camelCase】【PascalCase】

一、匈牙利命名法【Hungarian】:

广泛应用于象Microsoft Windows这样的环境中。

Windows 编程中用到的变量(还包括宏)的命名规则匈牙利命名法,这种命名技术是由一

位能干的Microsoft 程序员查尔斯·西蒙尼(Charles Simonyi) 提出的。

匈牙利命名法通过在变量名前面加上相应的小写字母的符号标识作为前缀,标识出变量的作用域,类型等。这些符号可以多个同时使用,顺序是先m_(成员变量),再指针,再简单数据类型,再其他。例如:m_lpszStr, 表示指向一个以0字符结尾的字符串的长指针成员变量。

匈牙利命名法关键是:标识符的名字以一个或者多个小写字母开头作为前缀;前缀之后的是

首字母大写的一个单词或多个单词组合,该单词要指明变量的用途。

匈牙利命名法中常用的小写字母的前缀:

前缀类型

a 数组(Array)

b 布尔值(Boolean)

by 字节(Byte)

c 有符号字符(Char)

cb 无符号字符(Char Byte,没有多少人用)

cr 颜色参考值(ColorRef)

cx,cy 坐标差(长度ShortInt)

dw Double Word

fn 函数

h Handle(句柄)

i 整型

l 长整型(Long Int)

lp Long Pointer

m_ 类的成员

n 短整型(Short Int)

np Near Pointer

p Pointer

s 字符串型

sz 以null做结尾的字符串型(String with Zero End)

w Word

二、骆驼命名法【camelCase】:

骆驼式命令法,正如它的名称所表示的那样,是指混合使用大小写字母来构成变量和函数

的名字。例如,下面是分别用骆驼式命名法和下划线法命名的同一个函数:

printEmployeePaychecks();

print_employee_paychecks();

第一个函数名使用了骆驼式命名法——函数名中的每一个逻辑断点都有一个大写字母来标记;第二个函数名使用了下划线法----函数名中的每一个逻辑断点都有一个下划线来标记。

骆驼式命名法近年来越来越流行了,在许多新的函数库和Microsoft

Windows这样的环境中,它使用得当相多。另一方面,下划线法是c出现后开始流行起来的,在许多旧的程序和UNIX这样的环境中,它的使用非常普遍。

三、帕斯卡命名法【PascalCase】:

与骆驼命名法类似。只不过骆驼命名法是首字母小写,而帕斯卡命名法是首字母大写

如:public void

DisplayInfo();

string UserName;

二者都是采用了帕斯卡命名法.

【在C#中,以帕斯卡命名法和骆驼命名法居多。

在C#中,简单的变量一般用camelCase规则,而比较高级的命名使用PascalCase。

如.net Framework的公共字段及公共属性。】

简单说

MyData是一個帕斯卡命名的示例。

myData是一個骆驼命名法。

iMyData是一個匈牙利命名法,小些说明了变量的类型或者用途。

C_C++变量命名规则

C/C++变量命名规则 变量命名规则是为了增强代码的可读性和容易维护性。以下为C++必须遵守的变量命名规则: 1、变量名只能是字母(A-Z,a-z)和数字(0-9)或者下划线(_)组成。 2、第一个字母必须是字母或者下划线开头。 3、不能使用C++关键字来命名变量,以免冲突。 4、变量名区分大小写。 变量命名规则: 一、用最短字符表示最准确的意义。 二、使用变量前缀。 1、整型前缀 int nId; //int前缀:n short sId; //short前缀:s unsigned int unId // unsigned int 前缀:un long lId; //long前缀:l 2、浮点型前缀 float fValue; //float前缀:f double dValue; //double前缀:d 3、字符型前缀 char chChar; //char前缀:ch 4、字符串前缀 char szPath; //char字符串前缀:sz string strPath; //string字符串前缀:str CString strPath; //MFC CString类前缀:str 5、布尔型前缀 bool bIsOK; //bool类型前缀:b BOOL bIsOK; //MFC BOOL前缀:b 6、指针型前缀 char * pPath; //指针前缀:p 7、数组前缀 int arrnNum; //数组前缀:arr CString arrstrName; //数组前缀+类型前缀+名称

8、结构体前缀 STUDENT tXiaoZhang; //结构体前缀:t 9、枚举前缀 enum emWeek; //枚举前缀:em 10、字节的前缀 BYTE byIP; //字节前缀:by 11、字的前缀 DWORD dwMsgID; //双字前缀:dw WORD wMsgID; //单字前缀:w 12、字符指针前缀 LPCTSTR ptszName; //TCHAR类型为ptsz LPCSTR pszName; //pcsz LPSTR pszName; //psz 13、STL容器前缀 vector vecValue; //vector容器前缀:vec 14、RECT矩形结构前缀 RECT rcChild; //rc CRECT rcChild/ //rc 15、句柄前缀 HWND hWndDlg; //h HBRUSH hBr; //h HPEN hPen; //h HBITMAP hBmpBack; //h 16、Windows颜色前缀 COLORREF crFont; //cr 17、Windows DC前缀 CDC dcClient; //dc 三、类的成员变量以m_开头,后面为变量,变量同时还要加前缀。 CString m_strName; //m_开头+类型前缀+名称 四、定义一个变量,为了简化,在不影响变量意义的情况下,可仅仅使用前缀。 RECT rc; 五、全局变量一律以g_开头,后面为变量,变量同时还要加前缀。

单片机C语言变量名命名规则整理

C语言变量名命名规则 一、程序风格: 1、严格采用阶梯层次组织程序代码: 各层次缩进的分格采用VC的缺省风格,即每层次缩进为4格,括号位于下一行。 要求相匹配的大括号在同一列,对继行则要求再缩进4格。例如: 2、提示信息字符串的位置 在程序中需要给出的提示字符串,为了支持多种语言的开发,除了一些给调试用的临时信息外,其他所有的提示信息必须定义在资源中。 3、对变量的定义,尽量位于函数的开始位置。 二、命名规则: 1、变量名的命名规则 ①、变量的命名规则要求用“匈牙利法则”。即开头字母用变量的类型,其余部分用变量的英文意思或其英文意思的缩写,尽量避免用中文的拼音,要求单词的第一个字母应大写。 即:变量名=变量类型+变量的英文意思(或缩写) 对非通用的变量,在定义时加入注释说明,变量定义尽量可能放在函数的开始处。 见下表:

对未给出的变量类型要求提出并给出命名建议给技术委员会。 ②、指针变量命名的基本原则为: 对一重指针变量的基本原则为: “p”+变量类型前缀+命名 如一个float*型应该表示为pfStat 对多重指针变量的基本规则为: 二重指针:“pp”+变量类型前缀+命名 三重指针:“ppp”+变量类型前缀+命名 ...... ③、全局变量用g_开头,如一个全局的长型变量定义为g_lFailCount,即:变量名=g_+变量类型+变量的英文意思(或缩写) ④、静态变量用s_开头,如一个静态的指针变量定义为s_plPerv_Inst,即:变量名=s_+变量类型+变量的英文意思(或缩写) ⑤、成员变量用m_开头,如一个长型成员变量定义为m_lCount;即:变量名=m_+变量类型+变量的英文意思(或缩写) ⑥、对枚举类型(enum)中的变量,要求用枚举变量或其缩写做前缀。并且要求用大写。 如:enum cmEMDAYS { EMDAYS_MONDAY; EMDAYS_TUESDAY; …… }; ⑦、对struct、union、class变量的命名要求定义的类型用大写。并要加

常用【变量命名法则】总结

常用【变量命名法则】总结 1、匈牙利命名法 计算机程序设计中的一种命名规则,用这种方法命名的变量显示了其数据类型。 匈牙利命名法有两种:系统匈牙利命名法和匈牙利应用命名法。 匈牙利命名法被设计成语言独立的,并且首次在BCPL语言中被大量使用。由于BCPL 只有机器字这一种数据类型,因此这种语言本身无法帮助程序员来记住变量的类型。匈牙利命名法通过明确每个变量的数据类型来解决这个问题。 在匈牙利命名法中,一个变量名由一个或多个小写字母开始,这些字母有助于记忆变量的类型和用处,紧跟着的就是程序员选择的任何名称。这个后半部分的首字母可以大写以区别前面的类型指示字母(参见駝峰式大小寫)。 系统命名法与应用命名法的区别在于前缀的目的。 在系统匈牙利命名法中,前缀代表了变量的实际数据类型。例如: lAccountNum : 变量是一个长整型("l"); arru8NumberList : 变量是一个无符号8位整型数组("arru8"); szName : 变量是一个零结束字符串("sz"),这是西蒙尼最开始建议的前缀之一。 匈牙利应用命名法不表示实际数据类型,而是给出了变量目的的提示,或者说它代表了什么。rwPosition : 变量代表一个行("rw")。 usName : 变量代表一个非安全字符串("us"),需要在使用前处理。 strName : 变量代表一个包含名字的字符串("str")但是没有指明这个字符串是如何实现的。 西蒙尼建议的大多数前缀都是自然语义的,但不是所有。下面几个是来自原始论文的: p X是指向另一个X类型的指针,这包含非常少的语义信息。 d是一个前缀表示两个值的区别,例如,dY可能代表一个图形沿Y轴的距离,而一个仅仅叫做y的变量可能是一个绝对坐标。这完全是自然语义的。 sz是一个无结束或零结束的字符串。在C中,这包含一些语义信息,因为它不是很明确一个char*类型的变量是一个指向单个字符的指针,还是一个字符数组,亦或是一个零结束字符串。 w标记一个变量是一个字。这基本上没有包含什么语义信息,因此大概会被当成是系统命名法。 b标记了一个字节,和w对比可能有一些语义信息,因为C语言中,只有字节大小的数据是char型的,因此这些有时候被用来保存数值。这个前缀也许可以明确某个变量保存的是应该被看作是字母(或更一般的字符)的数值还是一个数字。 由于这种命名法通常使用小写字母开头用来助记,但是并没有对助记符本身作规定。有几种被广泛使用的习惯(见下面的示例),但是任意字母组合都可以被使用,只要它们在代码主体中保持一致就可以了。 在使用匈牙利系统命名法的代码中有时候也可能包含系统匈牙利命名法,即在描述被单独以类型方式定义的变量时使用。

单片机C语言变量定义

单片机教程,51单片机C语言学习 第六课变量 上课所提到变量就是一种在程序执行过程中其值能不断变化的量。要在程序中使用变量必须先用标识符作为变量名,并指出所用的数据类型和存储模式,这样编译系统才能为变量分配相应的存储空间。定义一个变量的格式如下:[存储种类] 数据类型[存储器类型] 变量名表 在定义格式中除了数据类型和变量名表是必要的,其它都是可选项。存储种类有四种:自动(auto),外部(extern),静态(static)和寄存器(register),缺省类型为自动(auto)。这些存储种类的具体含义和用法,将在第七课《变量的存储》中进一步进行学习。 而这里的数据类型则是和我们在第四课中学习到的名种数据类型的定义是一样的。说明了一个变量的数据类型后,还可选择说明该变量的存储器类型。存储器类型的说明就是指定该变量在C51硬件系统中所使用的存储区域,并在编译时准确的定位。表6-1中是KEILuVision2所能认别的存储器类型。注意的是在AT89C51芯片中RAM只有低128位,位于80H到FFH的高128位则在52芯片中才有用,并和特殊寄存器地址重叠。特殊寄存器(SFR)的地址表请看附录二 如果省略存储器类型,系统则会按编译模式SMALL,COMPACT或LARGE所规定的默认存储器类型去指定变量的存储区域。无论什么存储模式都可以声明变量在任何的8051存储区范围,然而把最常用的命令如循环计数器和队列索引放在内部数据区可以显着的提高系统性能。还有要指出的就是变量的存储种类与存储器类型是完全无关的。 SMALL存储模式把所有函数变量和局部数据段放在8051系统的内部数据存储区这使访问数据非常快,但SMALL存储模式的地址空间受限。在写小型的应用程序时,变量和数据放在data内部数据存储器中是很好的因为访问速度快,但在较大的应用程序中data区最好只存放小的变量、数据或常用的变量(如循环计数、数据索引),而大的数据则放置在别的存储区域。 COMPACT存储模式中所有的函数和程序变量和局部数据段定位在8051系统的外部数据存储区。外部数据存储区可有最多256字节(一页),在本模式中外部数据存储区的短地址用@R0/R1。

单片机C语言变量定义定稿版

单片机C语言变量定义 HUA system office room 【HUA16H-TTMS2A-HUAS8Q8-HUAH1688】

单片机教程,51单片机C语言学习 第六课变量 上课所提到变量就是一种在程序执行过程中其值能不断变化的量。要在程序中使用变量必须先用标识符作为变量名,并指出所用的数据类型和存储模式,这样编译系统才能为变量分配相应的存储空间。定义一个变量的格式如下: [存储种类] 数据类型[存储器类型] 变量名表 在定义格式中除了数据类型和变量名表是必要的,其它都是可选项。存储种类有四种:自动(auto),外部(extern),静态(static)和寄存器(register),缺省类型为自动(auto)。这些存储种类的具体含义和用法,将在第七课《变量的存储》中进一步进行学习。 而这里的数据类型则是和我们在第四课中学习到的名种数据类型的定义是一样的。说明了一个变量的数据类型后,还可选择说明该变量的存储器类型。存储器类型的说明就是指定该变量在C51硬件系统中所使用的存储区域,并在编译时准确的定位。表6-1中是KEIL uVision2所能认别的存储器类型。注意的是在AT89C51芯片中RAM只有低128位,位于80H到FFH的高128位则在52芯片中才有用,并和特殊寄存器地址重叠。特殊寄存器(SFR)的地址表请看附录二AT89C51特殊功能寄存器列表

表6-1 存储器类型 如果省略存储器类型,系统则会按编译模式SMALL,COMPACT或LARGE所规定的默认存储器类型去指定变量的存储区域。无论什么存储模式都可以声明变量在任何的8051存储区范围,然而把最常用的命令如循环计数器和队列索引放在内部数据区可以显着的提高系统性能。还有要指出的就是变量的存储种类与存储器类型是完全无关的。

Matlab变量及命名规则

Matlab变量及命名规则 Matlab中所有的变量都是用矩阵形式来表示的,即所有的变量都表示一个矩阵或者一个向量。其命名规则如下: (1)变量名对大小写敏感; (2)变量名的第一个字符必须为英文字母,其长度不能超过31个字符; (3)变量名可以包含下连字符、数字,但不能包含空格符、标点。 Matlab系统预定义的变量: 表3-2 Matlab中预定义的变量 ans 预设的计算结果的变量名 eps Matlab定义的正的极小值=2.2204e-16 pi 内建的π值 inf ∞值,无限大 NaN 无法定义一个数目 i或j 虚数单位 nargin 函数输入参数个数 nargout 函数输出参数个数 realmax 最大的正实数 realmin 最小的正实数 flops 浮点运算次数 另外,键入clear是去除所有定义过的变量名称[]15。 3.2.2.2 赋值语句 Matlab中书写表达式的规则与手写算式差不多相同。如果一个指令过长可以在结尾加上“…”(代表此行指令与下一行连续)。 3.2.2.3 Matlab的矩阵计算功能 (1)Matlab中数值矩阵的生成Matlab中任何矩阵(向量),都可以直接按行方式输入每个元素,同一行中的元素用逗号或者用空格符来分隔,且空格个数不限;不同的行用分号分隔;所有元素处于一方括号内。 (2)Matlab中相关的矩阵运算 1)矩阵加、减运算 运算符:“+”和“-”分别为加、减运算符。 2)乘法 运算符:“*”;可实现两个矩阵相乘及矩阵的数乘。 点乘:“A.*B”表示A与B对应元素相乘。

3)向量点积 函数:dot 格式:C=dot(A,B);若A、B为长度相同的向量,则返回向量A与B的点积。 4)矩阵转置 运算符:“ '”; 运算规则:若矩阵A的元素为实数,则与线性代数中矩阵的转置相同。若A 为复数矩阵,则A转置后的元素由A对应元素的共轭复数构成。若仅希望转置,则用如下命令:“ A.'”。 5)方阵的行列式 函数:det 格式:d=det(X),返回方阵X的多项式的值。 6)矩阵的逆 函数:inv 格式:Y=inv(X),表示求方阵X的逆矩阵。若X为奇异阵或近似奇异阵,将给出警告信息。或者用“X^-1”计算,表示求方阵X的-1次方。 7)矩阵的秩 函数:rank 格式:k=rank(A),表示求矩阵A的秩。 8)矩阵的长度 函数:size;length 格式:size(A);length(A) n?的矩阵(行数和列数),而后者则返两者之间的区别在于前者返回一个m 回矩阵的长度(行数和列数的最大值)[]16。 3.2.2.4 关系和逻辑运算 作为所有关系和逻辑表达式的输出,Matlab把任何非零数值当作真,把零当作假。所有关系和表达式的输出,对于真,输出为1;对于假,输出为零。 Matlab关系操作符包括所有常用的比较: < :小于;<= :小于或等于; > :大于;>= :大于或等于; == :等于;~= :不等于 Matlab关系操作符能用来比较两个同样大小的数组,或用来比较一个数组和一个标量。在后一种情况,标量和数组中的每一个元素相比较,结果与数组大小一样。 Matlab逻辑操作符包括:& ——与;| ——或;~ ——非[]17。

c语言函数命名规范

竭诚为您提供优质文档/双击可除 c语言函数命名规范 篇一:c语言命名规则 匈牙利命名法是微软推广的一种关于变量、函数、对象、前缀、宏定义等各种类型的符号的 命名规范。匈牙利命名法的主要思想是:在变量和函数名中加入前缀以增进人们对程序的理 解。它是由微软内部的一个匈牙利人发起使用的,结果它在微软内部逐渐流行起来,并且推 广给了全世界的windows开发人员。下面将介绍匈牙利命名法,后面的例子里也会尽量遵守 它和上面的代码风格。 aarray数组 bbool(int)布尔(整数) byunsignedchar(byte)无符号字符(字节) cchar字符(字节) cbcountofbytes字节数 crcolorreferencevalue颜色(参考)值 cxcountofx(short)x的集合(短整数)

dwdwoRd(unsignedlong)双字(无符号长整数) fFlags(usuallymultiplebitvalues)标志(一般是有多位的数值) fnFunction函数 g_global全局的 hhandle句柄 iinteger llong lplongpointer m_datamemberofaclass 成员 nshortint ppointer sstring szzeroterminatedstring 符串 tmtextmetric uunsignedint ulunsignedlong(ulong)整数长整数长指针一个类的数据短整数指针字符串以0结尾的字文本规则无符号整数无符号长整数 wwoRd(unsignedshort)无符号短整数

C++变量命名规则

C++变量命名规则2008-09-03 14:48a Array 数组 b BOOL (int) 布尔(整数) by Unsigned Char (Byte) 无符号字符(字节) c Char 字符(字节) cb Count of bytes 字节数 cr Color reference value 颜色(参考)值 cx Count of x (Short) x的集合(短整数) dw DWORD (unsigned long) 双字(无符号长整数) f Flags (usually multiple bit values) 标志(一般是有多位的数值) fn Function 函数 g_ global 全局的 h Handle 句柄 i Integer 整数 l Long 长整数 lp Long pointer 长指针 m_ Data member of a class 一个类的数据成员 n Short int 短整数 p Pointer 指针 s String 字符串 sz Zero terminated String 以0结尾的字符串 tm Text metric 文本规则 u Unsigned int 无符号整数

ul Unsigned long (ULONG) 无符号长整数 w WORD (unsigned short) 无符号短整数 x,y x, y coordinates (short) 坐标值/短整数 v void 空 有关项目的全局变量用g_开始,类成员变量用m_,局部变量若函数较大则可考虑用l_用以显示说明其是局部变量。 前缀类型例子 g_ 全局变量g_Servers C 类或者结构体CDocument,CPrintInfo m_ 成员变量m_pDoc,m_nCustomers VC常用前缀列表: 前缀类型描述例子 ch char 8位字符chGrade ch TCHAR 16位UNICODE类型字符chName b BOOL 布尔变量bEnabled n int 整型(其大小由操作系统决定)nLength n UINT 无符号整型(其大小由操作系统决定)nLength

C语言编程规范简述

C语言编程规范简述 注释规范 注释的原则和目的注释的原则是有助于对程序的阅读理解,在该加的地方都加了,注释不宜太多也不能太少,注释语言必须准确、易懂、简洁。通过对函数或过程、变量、结构等正确的命名以及合理地组织代码的结构,使代码成为自注释的——清晰准确的函数、变量等的命名,可增加代码可读性,并减少不必要的注释——过量的注释则是有害的。 注释的目的是解释代码的目的、功能和采用的方法,提供代码以外的信息,帮助读者理解代码,防止重复注释信息。 进行注释时的注意事项:(1)建议边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性。不再有用的注释要删除。(2)注释的内容要清楚、明了,含义准确,防止注释二义性。说明:错误的注释不但无益反而有害。(3)避免在注释中使用缩写,特别是非常用缩写。在使用缩写时或之前,应对缩写进行必要的说明。 命名规范 命名的基本原则: (1)标识符的命名要清晰、明了,有明确含义,同时使用完整的单词或大家基本可以理解的缩写,避免使人产生误解——尽量采用采用英文单词或全部中文全拼表示,若出现英文单词和中文混合定义时,使用连字符“_”将英文与中文割开。较短的单词可通过去掉“元音”形成缩写;较长的单词可取单词的头几个字母形成缩写;一些单词有大家公认的缩写。例如:temp->tmp、flag->标志寄存器、statistic->stat、increment->inc、message->msg等缩写能够被大家基本认可。 (2)命名中若使用特殊约定或缩写,则要有注释说明。应该在源文件的开始之处,对文件中所使用的缩写或约定,特别是特殊的缩写,进行必要的注释说明。 (3)自己特有的命名风格,要自始至终保持一致,不可来回变化。个人的命名风格,在符合所在项目组或产品组的命名规则的前提下,才可使用。(即命名规则中没有规定到的地方才可有个人命名风格)。 (4)对于变量命名,禁止取单个字符(如i 、j 、k... ),建议除了要有具体含义外,还能表明其变量类型、数据类型等,但i 、j 、k 作局部循环变量是允许的。变量,尤其是局部变量,如果用单个字符表示,很容易敲错(如i写成j),而编译时又检查不出来,有可能为了这个小小的错误而花费大量的查错时间。 (5)除非必要,不要用数字或较奇怪的字符来定义标识符。 (6)命名规范必须与所使用的系统风格保持一致,并在同一项目中统一。 (7)在同一软件产品内,应规划好接口部分标识符(变量、结构、函数及常量)的命名,防止编译、链接时产生冲突。对接口部分的标识符应该有更严格限制,防止冲突。如可规定接口部分的变量与常量之前加上“模块”标识等。 (8)用正确的反义词组命名具有互斥意义的变量或相**作的函数等。

C 函数变量命名规则

a Array数组 b BOOL(int)布尔(整数) by Unsigned Char(Byte)无符号字符(字节) c Char字符(字节) cb Count of bytes字节数 cr Color reference value颜色(参考)值 cx Count of x(Short)x的集合(短整数) dw DWORD(unsigned long)双字(无符号长整数) f Flags(usually multiple bit values)标志(一般是有多位的数值) fn Function函数 g_global全局的 h Handle句柄 i Integer整数 l Long长整数 lp Long pointer长指针 m_Data member of a class一个类的数据成员 n Short int短整数 p Pointer指针 s String字符串 sz Zero terminated String以0结尾的字符串 tm Text metric文本规则 u Unsigned int无符号整数 ul Unsigned long(ULONG)无符号长整数 w WORD(unsigned short)无符号短整数

x,y x,y coordinates(short)坐标值/短整数 v void空 有关项目的全局变量用g_开始,类成员变量用m_,局部变量若函数较大则可考虑用l_用以显示说明其是局部变量。 前缀类型例子 g_全局变量g_Servers C类或者结构体CDocument,CPrintInfo m_成员变量m_pDoc,m_nCustomers VC常用前缀列表: 前缀类型描述例子 ch char8位字符chGrade ch TCHAR16位UNICODE类型字符chName b BOOL布尔变量bEnabled n int整型(其大小由操作系统决定)nLength n UINT无符号整型(其大小由操作系统决定)nLength w WORD16位无符号整型wPos l LONG32位有符号整型lOffset dw DWORD32位无符号整型dwRange p*Ambient memory model pointer内存模块指针,指针变量pDoc lp FAR*长指针lpDoc lpsz LPSTR32位字符串指针lpszName lpsz LPCSTR32位常量字符串指针lpszName lpsz LPCTSTR32位UNICODE类型常量指针lpszName h handle Windows对象句柄hWnd

C++变量规范命名规则

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.整型的前缀 short sValue; //s为short的前缀 int iAge; //i为int的前缀 unsigned int uiAge; //ui为unsigned int的前缀(两个单词的首字母) //也有用u做前缀的 long lValue; //l为long的前缀 2.浮点型的前缀 float fScore; //f为float的前缀

C语言常用规则

C语言常用规则 一、程序风格: 1、严格采用阶梯层次组织程序代码: 各层次缩进的分格采用VC的缺省风格,即每层次缩进为4格,括号位于下一行。 要求相匹配的大括号在同一列,对继行则要求再缩进4格。例如: 2、提示信息字符串的位置 在程序中需要给出的提示字符串,为了支持多种语言的开发,除了一些给调试用的临时信息外,其他所有的提示信息必须定义在资源中。 3、对变量的定义,尽量位于函数的开始位置。 这样的目的是为了检查的方便,以后自己看或检查和别人看会方便很多,具体的资料还可以参考林锐写的关于C语言的一个文章! 二、命名规则: 1、变量名的命名规则 ①、变量的命名规则要求用“匈牙利法则”。即开头字母用变量的类型,其余部分用变量的英文意思或其英文意思的缩写,尽量避免用中文的拼音,要求单词的第一个字母应大写。 即:变量名=变量类型+变量的英文意思(或缩写) 对非通用的变量,在定义时加入注释说明,变量定义尽量可能放在函数的开始处。 见下表:

对未给出的变量类型要求提出并给出命名建议给技术委员会。 ②、指针变量命名的基本原则为: 对一重指针变量的基本原则为: “p”+变量类型前缀+命名 如一个float*型应该表示为pfStat 对多重指针变量的基本规则为: 二重指针:“pp”+变量类型前缀+命名 三重指针:“ppp”+变量类型前缀+命名 ...... ③、全局变量用g_开头,如一个全局的长型变量定义为g_lFailCount,即:变量名=g_+变量类型+变量的英文意思(或缩写) ④、静态变量用s_开头,如一个静态的指针变量定义为s_plPerv_Inst,即:变量名=s_+变量类型+变量的英文意思(或缩写) ⑤、成员变量用m_开头,如一个长型成员变量定义为m_lCount;即:变量名=m_+变量类型+变量的英文意思(或缩写) ⑥、对枚举类型(enum)中的变量,要求用枚举变量或其缩写做前缀。并且要求用大写。 如:enum cmEMDAYS { EMDAYS_MONDAY; EMDAYS_TUESDAY;

C_C++变量的规范命名(20200928062820)

变量的规范命名是为了增强代码的可读性和容易维护性。 C+■程序变量命名只有几条必须遵守的“死规则”,这些规则如下: 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. 整型的前缀 short sValue; //s 为short 的前缀 int iAge; //i 为int 的前缀 unsigned int uiAge; //ui 为unsigned int 的前缀(两个单词的首字母) // 也有用u 做前缀的 long lValue; //l 为long 的前缀

单片机C语言变量定义

单片机C语言变量定义集团文件发布号:(9816-UATWW-MWUB-WUNN-INNUL-DQQTY-

单片机教程,51单片机C语言学习第六课变量 上课所提到变量就是一种在程序执行过程中其值能不断变化的量。要在程序中使用变量必须先用标识符作为变量名,并指出所用的数据类型和存储模式,这样编译系统才能为变量分配相应的存储空间。定义一个变量的格式如下: [存储种类] 数据类型[存储器类型] 变量名表 在定义格式中除了数据类型和变量名表是必要的,其它都是可选项。存储种类有四种:自动(auto),外部(extern),静态(static)和寄存器(register),缺省类型为自动(auto)。这些存储种类的具体含义和用法,将在第七课《变量的存储》中进一步进行学习。 而这里的数据类型则是和我们在第四课中学习到的名种数据类型的定义是一样的。说明了一个变量的数据类型后,还可选择说明该变量的存储器类型。存储器类型的说明就是指定该变量在C51硬件系统中所使用的存储区域,并在编译时准确的定位。表6-1中是KEILuVision2所能认别的存储器类型。注意的是在AT89C51芯片中RAM只有低128位,位于80H到FFH的高128位则在52芯片中才有用,并和特殊寄存器地址重叠。特殊寄存器(SFR)的地址表请看附录二AT89C51特殊功能寄存器列表

表6-1 存储器类型 如果省略存储器类型,系统则会按编译模式SMALL,COMPACT或LARGE所规定的默认存储器类型去指定变量的存储区域。无论什么存储模式都可以声明变量在任何的8051存储区范围,然而把最常用的命令如循环计数器和队列索引放在内部数据区可以显着的提高系统性能。还有要指出的就是变量的存储种类与存储器类型是完全无关的。 SMALL存储模式把所有函数变量和局部数据段放在8051系统的内部数据存储区这使访问数据非常快,但SMALL存储模式的地址空间受限。在写小型的应用程序时,变量和数据放在data内部数据存储器中是很好的因为访问速度快,但在较大的应用程序中data区最好只存放小的变量、数据或常用的变量(如循环计数、数据索引),而大的数据则放置在别的存储区域。 COMPACT存储模式中所有的函数和程序变量和局部数据段定位在8051系统的外部数据存储区。外部数据存储区可有最多256字节(一页),在本模式中外部数据存储区的短地址用@R0/R1。 LARGE存储模式所有函数和过程的变量和局部数据段都定位在8051系统的外部数据区外部数据区最多可有64KB,这要求用DPTR数据指针访问数据。 之前提到简单提到sfr,sfr16,sbit定义变量的方法,下面我们再来仔细看看。 sfr和sfr16可以直接对51单片机的特殊寄存器进行定义,定义方法如下:sfr特殊功能寄存器名=特殊功能寄存器地址常数; sfr16特殊功能寄存器名=特殊功能寄存器地址常数; 我们可以这样定义AT89C51的P1口 sfrP1=0x90;//定义P1I/O口,其地址90H sfr关键定后面是一个要定义的名字,可任意选取,但要符合标识符的命名规则,名字最好有一定的含义如P1口可以用P1为名,这样程序会变的好读好多。等号后面必须是

变量及文件名称命名规则

变量及文件名称命名规则

1.变量及方法命名规范 1.1.PHP类命名规则 在为类(class)命名前首先要知道类的功能,而且尽量使你的类名简洁而富于描述。如果通过类名提供的信息,不能准确反映类的功能,那么,命名就是失败的。 1.1.1.规则 1.使用单词的第一个字母大写作为词的分隔,其他的字母均使用小写。 2.名字的首字母使用大写。 3.不要使用下划线('_')。 4.不要使用超过三个词组成的混合名。 5.派生类的命名避免与其父类名混淆,一个类的名字只与它自身有关,和它的父类无关。 1.1. 2.示例 class NameOneTwo class Name class Raster class ImageSprite 1.2.变量的命名规则 在为变量命名前,首先要知道变量的类型是什么,尽量要是变量的富于描述性,通过变量名称让人很容易知道,变量的类型是什么,变量的用处是什么。 1.2.1.规则 1.字符串型,在变量前面加str。 2.数组型,在变量前面加a,一维数组使用名词单数,多维数组使用词复数。 3.整数型变量,在前面加上'i' 4.布尔型在前面加上'b' 5.浮点型,在前面加上'f' 6.指针类型,在前面加上'p' 7.资源型,在前面加上'rs' 8.未明变量,使用un 9.全局变量,在前面要加上’g’;

10.静态变量,要在前面加上’s’; 11.宏变量,全部由大写字母组成,词之间以下划线(‘_’)进行分割,词数不要超过3个1.2.2.示例 1.字符串行变量:$strMessage='Hello World!'; 2.一位数组变量:$aData=array(1,2,3,4,5,6); 3.多维数组变量:$aaDate=array(array(‘1’)); 4.整数变量:$iCount=1; 5.布尔型变量:$bEncode=true; 6.浮点型变量:$fSave=0.8; 7.指针型变量:$pBP=&$a; 8.资源型变量:$rsConn=mysql_connect('localhost','user','pw'); 9.未明变量:$unData=getData(); 10.全局变量:global$glog; 11.静态变量:static$sStatus=0; 12.宏变量:defina(‘PHP_CODE_STR’,’0’) 1.3.PHP方法命名规则 通常每个方法都是执行一个动作的,所以对它的命名清楚的说明它是做什么的; 1.3.1.规则 1.使用单词的第一个字母大写作为词的分隔,其他的字母均使用小写。 2.名字的首字母使用大写。 3.不要使用下划线('_')。 4.不要使用超过三个词组成的混合名。 1.3. 2.示例 Public function CheckForErrors(){} Private function CheckForErrors(){} 1.4.注释说明 一个很好的可遵循的有关注释的经验法则是:问问你自己,你如果从未见过这段代码,要在合理的时间内有效地明白这段代码,你需要哪些信息。

C语言程序设计代码规范

C++语言程序设计代码规范 1 命名规范 本规范对变量、函数、类(结构)等的名称有严格的规定,在编码过程中务必遵守。 1.1 变量命名规范 变量名称采用匈牙利命名法,即:完整的名称由“缀”和“主体”复合而成。“缀”用于指示变量的种类、数值类型、作用域等属性,由小写字符和下划线(_)组成,根据其附着在“主体”的位置分为前缀和后缀两种。“主体”表示变量的语义。 整个变量名称的格式如下: <作用域前缀>[<指针缀>]<类型缀><主体><作用域后缀> 下面详细论述。 1.1.1 作用域缀(前缀和后缀) 作用域前缀处在整个变量名的最前面。常用的作用域前缀为: 作用域后缀处在整个变量名的最后面。只有一种情况使用作用域后缀,就是函数的形参必须以作用域后缀结束。 1.1.2 指针缀 如果一个变量是指针,则必须使用指针缀。指针缀使用字母p表示。 以前,在DOS平台下有短指针和长指针的区别,有时称长指针为lp。在Win32平台下已经不存在这个区别了,所以统一使用p, 而不是lp。 1.1.3 类型缀 类型缀由小写字符构成,用于描述变量的类型。注意: 1.不要私自创造出各种各样的前缀。 2.也没有必要在前缀中仔细区分一些细小的类型区别,那样会给代码维护工作带来额外的麻烦。 常用的类型前缀为:

对于其他不在上面表中的结构、类等复杂数据类型,特别是不常使用的和不通用的,不使用前缀。例如: class Person Jonson; struct DateTime MyDt; 在应用场合明确的情况下,例如:简单的局部变量,它的值类型前缀有时可以省略。具体见下面的例子。 1.1.4 复合前缀 根据以上规则,变量根据它所在的作用域、类型、是否是指针,得到一个复合前缀。例如: char g_szFileName[_MAX_PATH]; //全局字符串变量 char* g_pszFileName; //全局字符串指针变量: char s_szFileName[_MAX_PATH]; //静态字符串变量 char* s_pszFileName; //静态字符串指针变量: char _s_szFileName[_MAX_PATH]; //局部静态字符串变量 char* _s_pszFileName; //局部静态字符串指针变量: char m_szFileName[_MAX_PATH]; //类字符串变量 char* m_pszFileName; //类字符串指针变量: char ms_szFileName[_MAX_PATH]; //类静态字符串变量 char* ms_pszFileName; //类静态字符串指针变量: 更多的例子,参见下面按照作用域讨论变量名一节。 1.1.5 主体 用于描述变量的上下文意义。 一般地,由首字母大写的一个或者多个单词构成,要求用英语作为描述语言。如:FileName,

常用变量命名规则

常用变量命名规则 变量的命名方法【Hungarian】【camelCase】【PascalCase】 一、匈牙利命名法【Hungarian】: 广泛应用于象Microsoft Windows这样的环境中。 Windows 编程中用到的变量(还包括宏)的命名规则匈牙利命名法,这种命名技术是由一 位能干的Microsoft 程序员查尔斯·西蒙尼(Charles Simonyi) 提出的。 匈牙利命名法通过在变量名前面加上相应的小写字母的符号标识作为前缀,标识出变量的作用域,类型等。这些符号可以多个同时使用,顺序是先m_(成员变量),再指针,再简单数据类型,再其他。例如:m_lpszStr, 表示指向一个以0字符结尾的字符串的长指针成员变量。 匈牙利命名法关键是:标识符的名字以一个或者多个小写字母开头作为前缀;前缀之后的是 首字母大写的一个单词或多个单词组合,该单词要指明变量的用途。 匈牙利命名法中常用的小写字母的前缀: 前缀类型 a 数组(Array) b 布尔值(Boolean) by 字节(Byte) c 有符号字符(Char) cb 无符号字符(Char Byte,没有多少人用) cr 颜色参考值(ColorRef) cx,cy 坐标差(长度ShortInt) dw Double Word fn 函数 h Handle(句柄) i 整型 l 长整型(Long Int) lp Long Pointer m_ 类的成员 n 短整型(Short Int) np Near Pointer p Pointer s 字符串型 sz 以null做结尾的字符串型(String with Zero End) w Word 二、骆驼命名法【camelCase】:

C语言全局变量定义方法

C语言全局变量定义方法 (2011-11-25 21:11:28) 转载▼ 标签: 分类:C语言 杂谈 今天调试系统的时候,需要定义几个全局位变量,定义好后一编译,发现错误一大堆,错误基本都是位变量定义时产生的。以前也定义过全局变量啊,但是先前怎么没错误?瞎折腾了一会最后还是发现问题出在细节上面了。以前只是侥幸没遇到而已。今天做个总结,以后再忘记了就回来直接查一下。 我们都知道定义在函数外部的变量就叫做全局变量,但是通常只有一个C文件和一个H文件的时候那样定义是不会出问题的。一个大的系统会包含好多个.C文件和.H文件,每个.C文件都有可能会访问全局变量,所以全局变量在定义的时候就要稍微做下改变了。通常的做法是建立一个包含系统所有全局变量的.H文件,系统用到的所有全局变量都定义在该文件内,文件名可以用Global修饰一下。在该文件中定义某个全局变量的时候需要用extern声明该变量为外部变量。比如要定义SysEventCounter标志为unsigned char型的全局变量可以这样定义: extern unsigned char SysEventCounter; <----这里是关键,不能对该变量赋值,只能声明,赋值就会报错。 上述声明是写在.H文件中的。其他.C文件若要用到该变量,直接包含该.H文件就可以了 如果想要赋初值,可以在用到它的.C文件中这样写: unsigned char SysEventCounter = 0; 不用赋初值时,直接 unsigned char SysEventCounter; 就可以了。注意:只需要在一个.C文件中写即可,其他.C文件直接可以用。如果在其他.C 文件中也这样写会产生重复定义的错误。

c语言变量命名规则较多较乱

c语言变量命名规则_较多较乱 几年以前,Charles Simonyi(他后来成为微软的著名程序员)设计了一种以前缀为基础的命名方法,这种方法后来称为"匈牙利表示法"以记念他.他的思想是根据每个标识符所代表的含义给它一个前缀.微软后来采用了这个思想,给每个标识符一个前缀以说明它的数据类型.因此,整型变量的前缀是n,长整型变量是nl,字符型数组变量是ca,以及字符串(以空类型结尾的字符数组)以sz为前缀.这些名字可能会非常古怪.比如说:lpszFoo表示"Foo"是一个指向以空字符为结尾的字符串的长整型指针. 这种方法的优点是使人能够通过变量的名字来辨别变量的类型,而不比去查找它的定义.遗憾的是,这种方法不仅使变量名字非常绕口,而且使改变变量类型的工作变得十分艰巨.在Windows3.1中,整型变量为16为宽.如果我们在开始时采用了一个整型变量,但是在通过30---40个函数的计算之后,发现采用整型变量宽度不够,这时我们不仅要改变这个变量的类型,而且要改变这个变量在这30--40个函数中的名字. 因为不切实际,除了一些顽固的Windows程序员外已经没有人再使用"匈牙利表示法"了.毫无疑问,在某种场合它依然存在,但大部分人现在已经抛弃它了.一般而言,输入前缀是一种糟糕的想法,因为它把变量于其类型紧紧地绑在了一起. 对于30行以下的函数,匈牙利方法一般有优势。 尤其是对界面编程,有优势。 但对于有强烈的算法要求、尤其是有很多抽象类型的C++程序,匈牙利方法简直是一个灾难。 看你用在什么地方。 现在有了很好的IDE工具,如:VC,SourceInsight等. 选中变量,会自动提示告诉你它的声明和定义,这样 匈牙利命名法就没有很大的必要了.

相关文档
最新文档