概述
业界共有四种命名法则:驼峰命名法、匈牙利命名法、帕斯卡命名法和下划线命名法
1、驼峰命名法:是指混合使用大小写字母来构成变量和函数的名字;
- 在实际的编程中又分为:大驼峰命名法和小驼峰命名法
- 大驼峰命名法:每一个单词的首字母都采用大写字母,例如:FirstName、LastName、CamelCase,也被称为 Pascal 命名法。
- 小驼峰命名法:第一个单词以小写字母开始,第二个单词的首字母大写。例如:firstName、lastName。
2、匈牙利命名法:即: 变量名=变量类型+变量的英文意思(或英文缩写、中文全拼、中文全拼缩写)
对非通用的变量,在定义时加入注释说明,变量定义尽量可能放在函数的开始处。
4.匈牙利命名法中常用的小写字母的前缀
前缀 类型 中文说明
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的集合(短整数)
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 Integer 短整数
p Pointer 指针
s String 字符串
sz Zero Terminated String 以零结尾的字符串
tm Text Metric 文本规则
u Unsigned Integer 无符号整数
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 布尔变量 bEnable
n int 整型 nLength
n UINT 无符整型 nLength
w WORD 16位无符号整型 wPos
l Long 32位有符号整型 lOffset
dw DWORD 32位无符号整型 dwRange
p * 指针变量,内存模块指针 pDoc
lp Far* 长指针 lpDoc
lpsz LPSTR 32位字符串指针 lpszName
lpsz LPCSTR 32位常量字符串指针 lpszName
lpsz LPCTSTR 32位Unicode集常量指针 lpszName
h handle Windows对象句柄 hWnd
lpfn (*fn)() 回调函数指针 lpfnAbort
=============================================================================
变量命名规范:
前缀 | 类型 | 描述 | 实例 |
ch | char | 8位字符 | chGrade |
ch | TCHAR | 如果_UNICODE定义,则为16位字符 | chName |
b | BOOL | 布尔值 | bEnable |
n | int | 整型(其大小依赖于操作系统) | nLength |
n | UINT | 无符号值(其大小依赖于操作系统) | nHeight |
w | WORD | 16位无符号值 | wPos |
l | LONG | 32位有符号整型 | lOffset |
dw | DWORD | 32位无符号整型 | dwRange |
p | * | 指针 | pDoc |
lp | FAR* | 远指针 | lpszName |
lpsz | LPSTR | 32位字符串指针 | lpszName |
lpsz | LPCSTR | 32位常量字符串指针 | lpszName |
lpsz | LPCTSTR | 如果_UNICODE定义,则为32位常量字符串指针 | lpszName |
h | handle | Windows对象句柄 | hWnd |
lpfn | callback | 指向CALLBACK函数的远指针 |
3、帕斯卡命名法:与骆驼命名法类似只不过骆驼命名法是首字母小写,而帕斯卡命名法是首字母大写,如:
程序代码
DisplayInfo();
string UserName;
4、下划线命名法:
print_employee_paychecks();
5、其他
1.指针变量命名的基本原则为:
- 对一重指针变量的基本原则为:“p”+变量类型前缀+命名,如一个float*型应该表示为pfStat。
- 全局变量用g_开头,如一个全局的长型变量定义为g_lFailCount。即:变量名=g_+变量类型+变量的英文意思(或缩写)。
- 静态变量用s_开头,如一个静态的指针变量定义为s_plPerv_Inst。即: 变量名=s_+变量类型+变量的英文意思(或缩写)
- 对枚举类型(enum)中的变量,要求用枚举变量或其缩写做前缀。并且要求用大写。如:
enum cmEMDAYS
{
EMDAYS_MONDAY;
EMDAYS_TUESDAY;
……
};
- 对struct、union变量的命名要求定义的类型用大写。并要加上前缀,其内部变量的命名规则与变量命名规则一致。结构一般用S开头,如:
struct ScmNPoint
{
int nX;//点的X位置
int nY; //点的Y位置
};
- 联合体一般用U开头,如:
union UcmLPoint
{
LONG lX;
LONG lY;
}
- 对常量(包括错误的编码)命名,要求常量名用大写,常量名用英文表达其意思。当需要由多个单词表示时,单词与单词之间必须采用连字符“_”连接。
如:#define CM_FILE_NOT_FOUND CMMAKEHR(0X20B) 其中CM表示类别。
- 对const 的变量要求在变量的命名规则前加入c_。即:c_+变量命名规则;示例:const char* c_szFileName;
2.下面是一些在软件中常用的反义词组。
add / remove begin / end create / destroy
insert / delete first / last g et / release
increment / decrement put / get
add / delete lock / unlock open / close
min / max old / new start / stop
next / previous source / target show / hide
send / receive source / destination
cut / paste up / down
示例:
intmin_sum;
intmax_sum;
intadd_user( BYTE *user_name );
intdelete_user( BYTE *user_name );
1.函数注释
/**********************************
[函数名称] (必需)
[函数功能] (必需)
[参数] (必需。表明各参数是输入参数还是输出参数)
[返回值](必需。解释返回值的意义)
**********************************/
2.文件注释
在头文件、实现文件的首部,要有文件注释介绍内容
/**********************************
[文件名](必需)
[功能模块和目的](必需)
**********************************/
3.代码注释
- 除文件、函数注释允许 ‘/**/’ 外,其他单行注释或语句体的注释必须使用 ‘//’注释。
- 常量定义时应有说明
- 主要变量(结构,联合,类或对象)定义或引用是,要对含义进行注释
- 典型算法前注释
- 注释可在上一行
- 空行和空白符也是注释,对于一个函数内的功能模块用空行分割
个人建议在编程的过程中命名函数是用驼峰命名法和下划线命名法比较好,在变量定义时匈牙利命名法比较好
网络有借鉴,如有侵权请告知,多谢!
最后
以上就是眼睛大往事为你收集整理的C语言编程命名规格的全部内容,希望文章能够帮你解决C语言编程命名规格所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复