Visual C++编程命名规则
编程命名规范
编程命名规范编程命名规范是一种在编程中使用的命名约定,它有助于提高代码的可读性和可维护性。
下面是一些常见的编程命名规范:1. 选择好的命名:使用有意义和易于理解的名称来命名变量、函数和类。
避免使用缩写和单字母名称,尽量使用描述性的单词或短语。
2. 使用小驼峰命名法:对于变量和函数,使用小驼峰命名法,即首字母小写,后续单词首字母大写。
例如:firstName、getFirstName。
3. 使用大驼峰命名法:对于类和接口,使用大驼峰命名法,即每个单词首字母大写。
例如:Person、CustomerService。
4. 使用下划线分隔单词:当命名中有多个单词时,可以用下划线来分隔。
例如:first_name、get_first_name。
5. 避免使用保留字和关键字:不要使用编程语言中的保留字和关键字作为变量、函数或类的名称,以免引起冲突。
6. 遵循命名约定:参考编程语言的命名约定,并且在项目中保持一致。
例如,Java中通常使用小驼峰命名法,C++中通常使用下划线命名法。
7. 使用有意义的前缀和后缀:在命名时,可以考虑添加一些有意义的前缀或后缀,以区分不同的变量或函数。
例如,使用“is”前缀来表示一个布尔类型的变量。
8. 注意命名长度:命名应该足够长以表达其含义,但也不应过长。
一般来说,变量和函数的命名应在2到20个字符之间,类名可以稍长。
9. 避免使用数字作为名称的一部分:除非在特殊情况下,不要使用数字作为变量或函数名称的一部分,因为它们会增加代码的复杂性和可读性。
10. 使用一致的命名风格:在整个项目中保持一致的命名风格,以便于阅读和理解代码。
例如,如果采用了小驼峰命名法,则在整个代码库中都应该使用该命名风格。
11. 注释命名的用途:在变量、函数或类的定义之前添加注释,解释其用途和功能,以便其他开发人员能够理解和使用。
12. 避免使用中文或特殊字符:在命名中不要使用中文字符或特殊字符,因为它们可能会导致编译或解析错误。
VC变量命名规则
转载:vc软件开发规范--------------------------------------------------------------------------------一、程序风格:1、严格采用阶梯层次组织程序代码:各层次缩进的分格采用VC的缺省风格,即每层次缩进为4格,括号位于下一行。
要求相匹配的大括号在同一列,对继行则要求再缩进4格。
例如:2、提示信息字符串的位置在程序中需要给出的提示字符串,为了支持多种语言的开发,除了一些给调试用的临时信息外,其他所有的提示信息必须定义在资源中。
3、对变量的定义,尽量位于函数的开始位置。
二、命名规则:1、变量名的命名规则①、变量的命名规则要求用“匈牙利法则”。
即开头字母用变量的类型,其余部分用变量的英文意思或其英文意思的缩写,尽量避免用中文的拼音,要求单词的第一个字母应大写。
即:变量名=变量类型+变量的英文意思(或缩写)对非通用的变量,在定义时加入注释说明,变量定义尽量可能放在函数的开始处。
见下表:bool(BOOL) 用b开头 bIsParentbyte(BYTE) 用by开头 byFlagshort(int) 用n开头 nStepCountlong(LONG) 用l开头 lSumchar(CHAR) 用c开头 cCountfloat(FLOA T) 用f开头 fAvgdouble(DOUBLE) 用d开头 dDetavoid(VOID) 用v开头 vV ariantunsigned int(WORD)用w开头 wCountunsigned long(DWORD) 用dw开头 dwBroadHANDLE(HINSTANCE)用h开头 hHandleDWORD 用dw开头 dwWordLPCSTR(LPCTSTR) 用str开头 strString用0结尾的字符串用sz开头 szFileName对未给出的变量类型要求提出并给出命名建议给技术委员会。
C# 编码规范手册
C# 编码规范手册目的C#代码规范的必要性有几个方面。
首先,代码规范可以提高代码的可读性和可维护性。
通过统一的命名规范、缩进、注释等,开发人员可以更轻松地理解和修改他人的代码,减少沟通和理解成本。
同时,规范化的代码结构和格式也能减少错误和bug的发生,提高代码质量。
其次,代码规范可以促进团队的协作和合作。
统一的代码规范可以让团队成员之间更容易理解和交流,减少因为风格差异导致的冲突和问题。
团队成员可以更加容易地进行代码审查和合并,提高团队整体效率。
最后,代码规范可以帮助开发人员养成良好的编码习惯。
遵循统一的代码规范可以强制开发人员写出结构清晰、易于理解的代码,从而提高开发效率和质量。
同时,良好的代码规范也可以帮助新人快速适应项目和团队,减少学习曲线。
总体来说,C#代码规范的制定和遵循是非常必要的,它可以提高代码质量、团队协作效率,并培养良好的编码习惯。
说明:编码规范是为了增加代码的可读性、一致性和统一性,没有谁的代码规范是正确,谁的是错误的。
不必纠结于那样写对还是错,只要一致,统一,大家都认可,读起来方便就可以了。
术语定义1. Pascal 命名法:将标识符的首字母和后面连接的每个单词的首字母都大写。
可以对三字符或更多字符的标识符使用 Pascal 大小写。
例如: BackColor。
2. Camel 命名法:标识符的首字母小写,而每个后面连接的单词的首字母都大写。
例如:backColor。
3. 大写:标识符中的所有字母都大写。
仅对于由两个或者更少字母组成的标识符使用该约定。
例如:System.IO,System.Web.UI。
4. 文档的规范分为三种:【强制】【推荐】【参考】,表示规范需要遵循的级别5. 匈牙利命名法:匈牙利命名法是一种编程时的命名规范。
基本原则是:变量名=属性+类型+对象描述,其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分。
要基于容易记忆容易理解的原则。
保证名字的连贯性是非常重要的。
c常量命名规则
c常量命名规则摘要:1.常量定义的原则2.常见编程语言中的常量命名规则3.为什么要遵循命名规则4.总结正文:在编程过程中,常量扮演着非常重要的角色。
它们可以帮助程序员更好地组织代码,提高代码的可读性和可维护性。
为了使常量更加易于理解和使用,我们需要遵循一定的命名规则。
1.常量定义的原则在定义常量时,应遵循以下原则:- 使用大写字母:常量名应使用大写字母开头,以区别于变量。
- 使用短横线分隔:当一个常量由多个单词组成时,使用短横线(-)分隔,例如:MAX_VALUE、MIN_AGE等。
- 简洁明了:尽量使用简洁明了的词汇表达常量的含义,避免使用复杂的术语。
2.常见编程语言中的常量命名规则不同编程语言对常量命名的要求略有不同,以下是一些常见编程语言中的常量命名规则:- Python:使用大写字母和下划线组合,例如:MAX_VALUE、MIN_AGE- Java:使用大写字母和下划线组合,例如:MAX_VALUE、MIN_AGE - JavaScript:使用大写字母和下划线组合,例如:MAX_VALUE、MIN_AGE- C++:使用大写字母和下划线组合,例如:MAX_VALUE、MIN_AGE - C#:使用大写字母和下划线组合,例如:MAX_VALUE、MIN_AGE3.为什么要遵循命名规则遵循命名规则有以下好处:- 提高代码可读性:规范的命名可以使代码更加清晰易懂,便于程序员快速理解代码含义。
- 降低维护成本:遵循命名规则有助于减少代码维护过程中的错误,提高工作效率。
- 提高团队合作:统一的命名规范有助于团队成员之间的沟通,提高协作效率。
4.总结在编程过程中,遵循常量命名规则至关重要。
它可以帮助我们编写出更加清晰、易于理解和维护的代码,提高工作效率。
c语言 宏命名规则
c语言宏命名规则摘要:1.宏命名规则的概述2.宏命名规则的组成3.宏命名规则的注意事项正文:C 语言是一种广泛使用的编程语言,它具有丰富的语法结构和功能。
在C 语言编程中,宏定义是一种重要的技术,可以帮助程序员简化代码和提高代码的可读性。
本文将介绍C 语言宏命名规则的相关知识。
一、宏命名规则的概述在C 语言中,宏定义是一种用于表示某个符号或表达式的方法。
通过宏定义,程序员可以使用一个简短的名称来表示一段复杂的代码,从而简化代码结构。
宏命名规则是指在定义宏时,需要遵循的命名规范。
二、宏命名规则的组成1.宏名宏名是宏定义中的名称,用于表示宏所代表的含义。
在C 语言中,宏名通常使用大写字母组成,这样可以与其他变量和函数区分开来。
例如,我们可以定义一个宏名MAX,表示两个数中的最大值。
2.宏体宏体是宏定义中的实际内容,它包含了宏所代表的代码或表达式。
在定义宏时,需要保证宏体的正确性和合法性。
例如,我们可以定义一个宏体,用于计算两个数中的最大值:```#define MAX(a, b) ((a) > (b)? (a) : (b))```三、宏命名规则的注意事项1.避免与关键字冲突在定义宏名时,应避免与C 语言的关键字冲突。
关键字是C 语言中具有特定意义的单词,不能作为变量名或宏名使用。
例如,我们不能定义一个名为if 的宏,因为它与C 语言中的if 关键字冲突。
2.避免使用非法字符在定义宏名时,应避免使用非法字符。
非法字符是指C 语言中不允许出现在标识符(如变量名、函数名、宏名等)中的字符。
例如,我们不能定义一个包含空格的宏名,因为空格是非法字符。
3.宏名应具有描述性在定义宏名时,应尽量使其具有描述性,以便于其他程序员理解宏的含义。
例如,我们可以定义一个名为MAX_TEMP 的宏,表示某个温度的最大值。
总之,了解和掌握C 语言宏命名规则对于编程工作非常重要。
C语言的标识符的命名规则及分类
C语言的标识符的命名规则及分类所谓标识符就是c语言中的变量名、函数名、数组名、文件名、类型名等。
C语言合法标识名的命名规则是:(1):标识符由字母、数字和下划线组成;(2):第一个字符不能是数字只能是字母或下划线;(3):区分大小写:大写字母与小写字母不同;(4):C语言规定了一个标识符允许的字符个数,即标识符的前若干个字符有效,超过的字符将不被识别。
C语言的标识符可分为关键字、预定义标识符和用户标识符3类:(1)关键字:C语言预先规定了一批标识符,它们在程序中都代表着固定的含义,不能另作他用,这些字符称为关键字,例如:int,double,if,else,while,for等;(2)预定义标识符:即预先定义并具有特定含义的标识符;(3):用户标识符:由用户根据需要定义的标识符称为用户标识符,一般用来给变量、函数、数组等命名。
c语言标识符命名规则
c 语言标识符命名规则
c 语言
C 语言是一门通用计算机编程语言,广泛应用于底层开发。
C 语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机
器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C 语言提供了许多低级处理的功能,但仍然保持着良好跨平台
的特性,以一个标准规格写出的C 语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
C 语言的标识符命名规则
1、标识符必须以字母a~z、A~Z 或下划线开头,后面可跟任意个(可为0)字符,这些字符可以是字母、下划线和数字,其他字符不允许出
现在标识符中。
2、标识符区分大小写字母
3、标识符的长度,c89 规定31 个字符以内,c99 规定63 个字符以内。
C语言编程规范—命名规则
C语⾔编程规范—命名规则C是⼀门朴素的语⾔,你使⽤的命名也应该这样。
与Modula-2和Pascal程序员不同,C程序员不使⽤诸如“ThisVariableIsATemporaryCounter”这样“聪明”的名字。
C程序员应该叫它“tmp”,这写起来更简单,也不会更难懂。
然⽽,当⾯对复杂情况时就有些棘⼿,给全局变量取⼀个描述性的名字是必要的。
把⼀个全局函数叫做“foo”是⼀种⽬光短浅的⾏为。
全局函数也⼀样,如果你有⼀个统计当前⽤户个数的函数,应当把它命名为“count_active_user()”或者简单点些的类似名称,不应该命名为“cntusr()”。
3.1 三种流⾏的命名法则⽬前,业界共有四种命名法则:驼峰命名法、匈⽛利命名法、帕斯卡命名法和下划线命名法,其中前三种是较为流⾏的命名法。
(1)驼峰命令法。
正如它的名称所表⽰的那样,是指混合使⽤⼤⼩写字母来构成变量和函数的名字。
例如,下⾯是分别⽤骆驼式命名法和下划线法命名的同⼀个函数:printEmployeePaychecks();print_employee_paychecks();第⼀个函数名使⽤了驼峰命名法,函数名中的每⼀个逻辑断点都有⼀个⼤写字母来标记。
第⼆个函数名使⽤了下划线法,函数名中的每⼀个逻辑断点都有⼀个下划线来标记。
驼峰命名法近年来越来越流⾏了,在许多新的函数库和Microsoft Windows这样的环境中,它使⽤得当相多。
另⼀⽅⾯,下划线法是C出现后开始流⾏起来的,在许多旧的程序和UNIX这样的环境中,它的使⽤⾮常普遍。
(2)匈⽛利命名法。
⼴泛应⽤于象Microsoft Windows这样的环境中。
Windows 编程中⽤到的变量(还包括宏)的命名规则为匈⽛利命名法,这种命名技术是由⼀位能⼲的 Microsoft 程序员查尔斯-西蒙尼(Charles Simonyi) 提出的。
匈⽛利命名法通过在变量名前⾯加上相应的⼩写字母的符号标识作为前缀,标识出变量的作⽤域、类型等。
msvc 名称修改规则
msvc 名称修改规则Microsoft Visual C++ (MSVC) 名称修改规则Microsoft Visual C++ (MSVC) 名称修改规则定义了如何将程序中的变量名、函数名、类名等进行修改,以避免与其他库或模块的名称冲突。
一、变量名命名规则:1、变量名的第一个字母必须为小写字母。
2、变量名中的每个单词的首字母必须大写,其余部分必须小写。
3、变量名称不能包含空格,并且不能使用下划线或破折号。
4、变量名称不能包含特殊字符,包括@,#,$,&,%,^,*,+,=,~,|,<,>,/,,?,!等。
5、变量名称不能以数字开头。
6、变量名称不能与MSVC中的内置宏名称、关键字或系统定义的变量名冲突。
二、函数名命名规则:1、函数名的第一个字母必须为小写字母。
2、函数名中的每个单词的首字母必须大写,其余部分必须小写。
3、函数名称与变量名称的其他命名规则相同。
三、类名命名规则:1、类名的第一个字母必须为大写字母。
2、类名中的每个单词的首字母必须大写,其余部分必须小写。
3、类名称与变量名称的其他命名规则相同。
四、枚举类型命名规则:1、枚举名称的第一个字母必须为大写字母。
2、枚举名称中的每个单词的首字母必须大写,其余部分必须小写。
3、枚举名称不能包含空格,并且不能使用下划线或破折号。
4、枚举名称不能包含特殊字符,包括@,#,$,&,%,^,*,+,=,~,|,<,>,/,,?,!等。
5、枚举名称不能以数字开头。
6、枚举名称不能与MSVC中的内置宏名称、关键字或系统定义的枚举名冲突。
总之,MSVC 名称修改规则旨在帮助开发人员设计出有效而不易冲突的程序代码名称,以达到程序可靠性和可维护性的目的。
《编程命名规范》
本文列出VisualC++的标识符命名规范。
<规则 1> 标识符缩写
形成缩写的几种技术
1) 去掉所有的不在词头的元音字母。如screen写成scrn,primtive写成prmv。 2) 使用每个单词的头一个或几个字母。如ChannelActivation写成ChanActiv,ReleaseIndication写成 RelInd。 3) 使用变量名中每个有典型意义的单词。如CountofFailure写成FailCnt 4) 去掉无用的单词后缀 ing,ed等。如PagingRequest写成PagReq 5) 使用标准的或惯用的缩写形式 (包括协议文件中出现的缩写形式) 。 如BSIC(BaseStationIdentification Code)MAP(MobileApplicationPart)
基本类型列表如下:
基本类型 意义 举例 b Boolean 布尔 bIsOK by Byte 字节 byNum c Char 字符 cMyChar i或n Integer 整数 nTestNumber u Unsignedinteger 无符号整数 uCount ul UnsignedLong 无符号长整数 ulTime w Word 字 wPara dw DoubleWord 双字 dwPara l Long 长型 lPara f Float 浮点数 fTotal s String 字符串 sTemp sz NULL结束的字符串 szTrees fn Funtion 函数 fnAdd enm 枚举型 enmDays x,y x,y坐标
Visual Basic 笔试复习资料(1)控件及常用属性
类和对象,及对象的三要素:属性、事件和方法程序调试三种工作模式设计模式 界面的设计和代码的编制 运行模式 运行应用程序中断模式 暂时中断程序运行,调试程序语法错误、运行时错误和逻辑错误三类常用方法及格式[对象.] 方法 [参数列表]Print 方法[对象.]Print[{Spc(n)|Tab(n)}][表达式列表][;|,] ⏹ 对象 - 窗体、图形框或打印机(Printer ),省略对象时表示在窗体上输出。
⏹ Spc(n) 函数 - 插入n 个空格,允许重复使用。
⏹ Tab(n) 函数 - 左端开始右移动n 列,允许重复使用。
工具箱 窗体窗口 代码窗口 立即窗口 工程资源管理器窗口 属性窗口窗体布局窗口⏹;(分号) -光标定位上一个显示的字符后。
⏹,(逗号) -光标定位在下一个打印区的开始位置处。
无分号和逗号时控制换行。
Cls方法清除运行时在窗体或图形框中产生的文本或图形, Cls方法不能清除窗体在设计时的文本和图形Move方法可移动窗体或控件,并可改变其大小。
语法格式如下:[对象.]Move 左边距离[,上边距离[,宽度[,高度]]]窗体(名称:Form1)1、常用属性2、主要事件Form_Load()Form_Click()3、应用关键点1、在窗体的Load事件中,A:如果使用Print方法,则窗体的AutoReDraw属性要设置为True;对于图形框使用Print方法也要将图形框的AutoReDraw属性要设置为True。
B:随机函数使用时,要加入:Randomize 语句。
2、在窗体上加入图形时,代码设置Picture属性的方法:Form1.Picture=Loadpicture(App.Path+”\图形或图像文件的全名”)(注含扩展名)Picture1.Picture=Loadpicture(App.Path+”\图形或图像文件的全名”)(注含扩展名)Image1.Picture=Loadpicture(App.Path+”\图形或图像文件的全名”)(注含扩展名)3、BorderStyle为边框样式,默认值为2;取其它值时,系统将MinButton 和MaxButton自动设置为False。
单片机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变量的命名要求定义的类型用大写。
vc,cstring,命名规范
竭诚为您提供优质文档/双击可除vc,cstring,命名规范篇一:匈牙利命名法vc++前缀规则匈牙利命名法匈牙利命名法是一种编程时的命名规范。
基本原则是:变量名=属性+类型+对象描述,其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分。
命名要基于容易记忆容易理解的原则。
保证名字的连贯性是非常重要的。
举例来说,表单的名称为form,那么在匈牙利命名法中可以简写为frm,则当表单变量名称为switchboard时,变量全称应该为frmswitchboard。
这样可以很容易从变量名看出switchboard是一个表单,同样,如果此变量类型为标签,那么就应命名成lblswitchboard。
可以看出,匈牙利命名法非常便于记忆,而且使变量名非常清晰易懂,这样,增强了代码的可读性,方便各程序员之间相互交流代码。
这种命名技术是由一位能干的microsoft程序员查尔斯·西蒙尼(charlessimonyi)提出的,他出生在匈牙利。
在microsoft公司中和他一起工作的人被教会使用这种约定。
这对他们来说一切都很正常。
但对那些simonyi领导的项目组之外的人来说却感到很奇特,他们认为这是死板的表达方式,甚至说带有这样奇怪的外观是因为它是用匈牙利文写的。
从此这种命名方式就被叫做匈牙利命名法。
据说这种命名法是一位叫charlessimonyi的匈牙利程序员发明的,后来他在微软呆了几年,于是这种命名法就通过微软的各种产品和文档资料向世界传播开了。
现在,大部分程序员不管自己使用什么软件进行开发,或多或少都使用了这种命名法。
这种命名法的出发点是把量名变按:属性+类型+对象描述的顺序组合起来,以使程序员作变量时对变量的类型和其它属性有直观的了解,下面是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函数的函数指针变量。
VC++变量,范围前缀等命名规则
匈牙利命名法规则一般情况下,变量的取名方式为:<scope_> + <prefix_> + <qualifier>。
范围前缀_,类型前缀_,限定词。
特殊的类型命名,前缀表示:类、接口前缀 类型 例子 备注Lm Class LmObject I Interface 接口 IUnknown 表示类型本身不与范围前缀结合使用注:类名前缀改为Lm,对于非全局的类最好有语义表示其所属模块。
类的实例命名与类名大致相同,只是类名语义表示类的通用含义,而类名表示此实例的具体语义。
如类名LmSketPoint表示草图点的类定义,而它的两个实例_StartPoint,_EndPoint分别代表起点和终点的语义。
类的实例命名带上前缀_。
特殊约定:a. MouseTool的派生类的前缀为_Mt.b.对话框类的前缀为CDlg.c.橡皮条类的前缀为_Rb.范围前缀:前缀 类型 例子 备注g_ 全局作用域 g_Serversm_ 成员变量 m_pDoc,l_ 局部作用域 l_strName 少用 注:编程时尽量少用全程变量,对于全程变量还应在类型前缀后加上如下关键字:特征模块: Fea草图模块: Sket装配模块: Asm工程图模块: Lay曲面模块: Surf界面模块: Ui常用的一般数据类型的前缀前缀 类型 内存规格描述 例子ch char 8-bitcharacter chGrade ch TCHAR 16-bit character if _UNICODE is defined chNamevalue bEnabledb BOOL Booleann int Integer (size dependent on operating system) nLengthnLengthn UINT Unsigned value (size dependent on operatingsystem)w WORD 16-bit unsigned value wPosl LONG 32-bit signed integer lOffsetdw DWORD 32-bit unsigned integer dwRangep * Ambient memory model pointer pDocpointer lpDoc lp FAR* Farlpsz LPSTR 32-bit pointer to character string lpszNamelpsz LPCSTR 32-bit pointer to constant character string lpszNamelpszName lpsz LPCTSTR32-bit pointer to constant character string if_UNICODE is definedh handle Handle to Windows object hWndlpfn (*fn)() callbackFar pointer to CALLBACK function lpfnAbort常用Windows对象名称缩写Windows 对象 例子变量 MFC类 例子对象HWND hWnd; CWnd* pWnd;pDlg;HDLG hDlg; CDialog*HDC hDC; CDC* pDC;pGdiObj;HGDIOBJ hGdiObj; CGdiObject*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;pStatic;HWND hCtl; CStatic*pBtn;HWND hCtl; CButton*pEdit;HWND hCtl; CEdit*pListBox;HWND hCtl; CListBox*pComboBox;HWND hCtl; CComboBox*Visual C++常用宏定义命名列表前缀 符号类型 符号例子 范围IDR_ 标识多个资源共享的类型 IDR_MAINFRAME 1 to 0x6FFFIDD_ 对话框资源(Dialog) IDD_SPELL_CHECK 1 to 0x6FFFIDB_ 位图资源(Bitmap) IDB_COMPANY_LOGO 1 to 0x6FFFIDC_ 光标资源(Cursor) IDC_PENCIL 1 to 0x6FFFIDI_ 图标资源(Icon) IDI_NOTEPAD 1 to 0x6FFFID_IDM_ 工具栏或菜单栏的命令项 ID_TOOLS_SPELLING 0x8000 to 0xDFFFHID_ 命令上下文帮助(CommandHelp context) HID_TOOLS_SPELLING 0x18000to0x1DFFFIDP_ 消息框提示文字资源 IDP_INVALID_PARTNO 8 to 0xDFFFHIDP_ 消息框上下文帮助(Message-box Helpcontext) HIDP_INVALID_PARTNO 0x30008to0x3DFFFIDS_ 字符串资源(String) IDS_COPYRIGHT 1 to 0x7FFFIDC_ 对话框内的控制资源(Control)IDC_RECALC 8 to 0xDFFF Microsoft MFC宏命名规范名称类型_AFXDLL 唯一的动态连接库(Dynamic Link Library,DLL)版本_ALPHA 仅编译DEC Alpha处理器_DEBUG 包括诊断的调试版本_MBCS 编译多字节字符集_UNICODE 在一个应用程序中打开UnicodeAFXAPI 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。
c语言 宏命名规则
c语言宏命名规则(原创实用版)目录1.宏命名规则的概述2.宏命名规则的组成3.宏命名规则的注意事项正文C 语言是一种广泛应用的编程语言,它具有丰富的语法结构和强大的功能。
在 C 语言编程中,宏定义是一种常用的技术,用于实现代码的简化和复用。
本文将为您介绍 C 语言宏命名规则的相关知识。
一、宏命名规则的概述在 C 语言中,宏定义是一种用于定义常量、函数或其他标识符的方法。
通过宏定义,程序员可以在代码中使用一个简短的名称来表示某个值或功能。
这种技术可以提高代码的可读性和可维护性。
二、宏命名规则的组成1.宏名宏名是用户定义的标识符,用于表示宏定义。
它通常由字母、数字和下划线组成,但不能以数字开头。
例如,我们可以定义一个名为`PI`的宏,表示圆周率。
2.宏体宏体是宏定义的具体内容,它包含了实际的值或功能。
在宏定义中,宏名后面跟一个冒号,然后是宏体。
例如,我们可以定义一个名为`MAX`的宏,表示两个数中的较大值,如下所示:```c#define MAX(a, b) ((a) > (b)? (a) : (b))```三、宏命名规则的注意事项1.区分大小写在 C 语言中,宏名是大小写敏感的。
这意味着,如果定义了一个名为`PI`的宏,那么`PI`和`pi`是不同的。
因此,在使用宏定义时,要注意保持宏名的大小写一致。
2.不要使用保留字C 语言中有一些保留字,它们具有特殊的含义。
不要使用这些保留字作为宏名,以免引起编译错误。
例如,不能定义一个名为`auto`的宏,因为`auto`是 C 语言中的一个保留字。
3.不要在宏名中使用特殊字符尽管 C 语言允许在宏名中使用下划线,但最好不要使用特殊字符,如`*`、`+`等。
这些字符可能会与 C 语言的语法结构冲突,导致编译错误。
总之,了解 C 语言宏命名规则对于编写清晰、易于维护的代码至关重要。
C语言第06讲C语言标识符命名规则
让知识带有温度。
C语言第06讲C语言标识符命名规则
标识符是指我们为变量、宏,函数等等取地名字.
一、语言变量地命名长度限制
二、语言变量地命名可用字符和组合规章
三、语言变量地命名规章都有哪些?
、命名应该直观且可以拼读,可望文知意,便于记忆和阅读.
标识符最好采纳英文单词或其组合,不允许使用拼音.程序中地英文单词普通不要太复杂,用词应该精确.
、命名地长度应该符合“”原则.
是一种简洁地语言, 命名也应当是简洁地.例如变量名就比
好用.标识符地长度普通不要过长,较长地单词可通过去掉“元音”形成缩写.
另外,英文词尽量不缩写,特殊是十分用专业名词,假如有缩写,在同一系统中对同一单词必需使用相同地表示法,并且注明其意思.
、当标识符由多个词组成时,每个词地第一个字母大写,其余所有小写.比如:;这样地名字看起来比较清楚,远比一长串字符好得多.
、尽量避开名字中浮现数字编号,如等,除非规律上地确需要编号.比如驱动开发时为管脚命名,非编号名字反而不好.
初学者总是喜爱用带编号地变量名或函数名,这样子看上去很容易便利,但其实是一颗颗定时炸弹.这个习惯初学者一定要改过来.
第1页/共2页
千里之行,始于足下
、对在多个文件之间共同使用地全局变量或函数要加范围限定符(建议使用模块名(缩写)作为范围限定符).( ,)标识符地命名规章:
、标识符名分为两部分:规范标识符前缀(后缀) 含义标识.非全局变量可以不用使用范围限定符前缀.
文档内容到此结束,欢迎大家下载、修改、丰富并分享给更多有需要的人。
第2页/共2页。
C语言变量的命名规则
C语言变量的命名规则C语言变量的命名规则C语言是一门通用计算机编程语言,应用广泛。
下面店铺整理了C 语言变量的命名规则,希望对大家有帮助!1)命名应当直观且可以拼读,可望文知意,便于记忆和阅读。
标识符最好采用英文单词或其组合,不允许使用拼音。
程序中的英文单词一般不要太复杂,用词应当准确。
2)命名的长度应当符合“min-length && max-information”原则。
C 是一种简洁的语言, 命名也应该是简洁的。
例如变量名MaxVal 就比MaxValueUntilOverflow 好用。
标识符的长度一般不要过长,较长的单词可通过去掉“元音”形成缩写。
另外,英文词尽量不缩写,特别是非常用专业名词,如果有缩写,在同一系统中对同一单词必须使用相同的表示法,并且注明其意思。
3)当标识符由多个词组成时,每个词的第一个字母大写,其余全部小写。
比如: int CurrentVal;这样的名字看起来比较清晰,远比一长串字符好得多。
4)尽量避免名字中出现数字编号,如Value1,Value2 等,除非逻辑上的确需要编号。
比如驱动开发时为管脚命名,非编号名字反而不好。
初学者总是喜欢用带编号的变量名或函数名,这样子看上去很简单方便,但其实是一颗颗定时炸弹。
这个习惯初学者一定要改过来。
5)对在多个文件之间共同使用的全局变量或函数要加范围限定符(建议使用模块名(缩写)作为范围限定符)。
6)标识符名分为两部分:规范标识符前缀(后缀) + 含义标识。
非全局变量可以不用使用范围限定符前缀。
7)含义标识命名规则,变量命名使用名词性词组,函数命名使用动词性词组。
变量含义标识符构成:目标词+ 动词(的过去分词)+ [状语] + [目的地];8)程序中不得出现仅靠大小写区分的相似的标识符。
例如:int x, X; 变量x 与X 容易混淆void foo(int x); 函数foo 与FOO 容易混淆void FOO(float x);这里还有一个要特别注意的就是1(数字1)和l(小写字母l)之间,0(数字0)和o(小写字母o)之间的.区别。
vc命名规则
vc命名规则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_ServersC 类或者结构体CDocument,CPrintInfom_ 成员变量m_pDoc,m_nCustomersVC常用前缀列表:前缀类型描述例子ch char 8位字符chGradech TCHAR 16位UNICODE类型字符chNameb BOOL 布尔变量bEnabledn int 整型(其大小由操作系统决定)nLengthn UINT 无符号整型(其大小由操作系统决定)nLengthw WORD 16位无符号整型wPosl LONG 32位有符号整型lOffsetdw DWORD 32位无符号整型dwRangep * Ambient memory model pointer 内存模块指针,指针变量pDoclp FAR* 长指针lpDoclpsz LPSTR 32位字符串指针lpszNamelpsz LPCSTR 32位常量字符串指针lpszNamelpsz LPCTSTR 32位UNICODE类型常量指针lpszNameh handle Windows对象句柄hWndlpfn (*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~0x6FFFIDD_ 对话框资源(Dialog)IDD_SPELL_CHECK 1~ 0x6FFFHIDD_ 基于对话框的上下文帮助HIDD_SPELL_CHECK 0x20001~0x26FFIDB_ 位图资源(Bitmap)IDB_COMPANY_LOGO 1~0x6FFFIDC_ 光标资源(Cursor)IDC_PENCIL 1~0x6FFFIDI_ 图标资源(Icon)IDI_NOTEPAD 1~0x6FFFID_、IDM_ 工具栏或菜单栏的命令项ID_TOOLS_SPELLING 0x8000~0xDFFFHID_ 命令上下文帮助HID_TOOLS_SPELLING 0x18000~0x1DFFFIDP_ 消息框提示文字资源IDP_INVALID_PARTNO 8~0xDFFFHIDP_ 消息框上下文帮助HIDP_INVALID_PARTNO 0x30008~0x3DFFFIDS_ 字符串资源(String)IDS_COPYRIGHT 1~0x7FFFIDC_ 对话框内的控制资源IDC_RECALC 8~0xDFFFMicrosoft MFC宏命名规范名称类型_AFXDLL 唯一的动态连接库(Dynamic Link Library,DLL)版本_ALPHA 仅编译DEC Alpha处理器_DEBUG 包括诊断的调试版本_MBCS 编译多字节字符集_UNICODE 在一个应用程序中打开UnicodeAFXAPI 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 *)相同,可以用来代替LPSTRMSDN中给出了一段遵守代码风格和匈牙利命名法的代码参考如下:1 #include “sy.h”2 extern int *rgwDic;3 extern int bsyMac;4 struct SY *PsySz(char sz[])6 {7 char *pch;8 int cch;9 struct SY *psy, *PsyCreate();10 int *pbsy;11 int cwSz;12 unsigned wHash=0;13 pch=sz;14 while (*pch!=0)15 wHash=wHash<>11+*pch++;16 cch=pch-sz;17 pbsy=&rgbsyHash[(wHash&077777)%cwHash];18 for (; *pbsy!=0; pbsy = &psy->bsyNext)19 {20 char *szSy;21 szSy= (psy=(struct SY*)&rgwDic[*pbsy])->sz;22 pch=sz;23 while (*pch==*szSy++)24 {25 if (*pch++==0)26 return (psy);27 }28 }29 cwSz=0;30 if (cch>=2)31 cwSz=cch-2/sizeof(int)+1;32 *pbsy=(int *)(psy=PsyCreate(cwSY+cwSz))-rgwDic;33 Zero((int *)psy,cwSY);34 bltbyte(sz, psy->sz, cch+1);35 return(psy);36 }。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Visual C++编程命名规则2011-3-10 来源:网络一、程序风格:1、严格采用阶梯层次组织程序代码:各层次缩进的分格采用VC的缺省风格,即每层次缩进为4格,括号位于下一行。
要求相匹配的大括号在同一列,对继行则要求再缩进4格。
例如:2、提示信息字符串的位置在程序中需要给出的提示字符串,为了支持多种语言的开发,除了一些给调试用的临时信息外,其他所有的提示信息必须定义在资源中。
3、对变量的定义,尽量位于函数的开始位置。
二、命名规则:1、变量名的命名规则①、变量的命名规则要求用“匈牙利法则”。
即开头字母用变量的类型,其余部分用变量的英文意思或其英文意思的缩写,尽量避免用中文的拼音,要求单词的第一个字母应大写。
即:变量名=变量类型+变量的英文意思(或缩写)对非通用的变量,在定义时加入注释说明,变量定义尽量可能放在函数的开始处。
见下表:bool(BOOL) 用b开头 bIsParentbyte(BYTE) 用by开头 byFlagshort(int) 用n开头 nStepCountlong(LONG) 用l开头 lSumchar(CHAR) 用c开头 cCountfloat(FLOAT) 用f开头 fAvgdouble(DOUBLE) 用d开头 dDetavoid(VOID) 用v开头 vVariantunsigned int(WORD)用w开头 wCountunsigned long(DWORD) 用dw开头 dwBroadHANDLE(HINSTANCE)用h开头 hHandleDWORD 用dw开头 dwWordLPCSTR(LPCTSTR) 用str开头 strString用0结尾的字符串用sz开头 szFileName对未给出的变量类型要求提出并给出命名建议给技术委员会。
②、指针变量命名的基本原则为:对一重指针变量的基本原则为:“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变量的命名要求定义的类型用大写。
并要加上前缀,其内部变量的命名规则与变量命名规则一致。
结构一般用S开头如:struct ScmNPoint{int nX;//点的X位置int nY; //点的Y位置};联合体一般用U开头如: union UcmLPoint{long lX;long lY;}类一般用C开头如:class CcmFPoint{public:float fPoint;};对一般的结构应该定义为类模板,为以后的扩展性考虑如:templateclass CcmTVector3d{public:TYPE x,y,z;};⑧、对常量(包括错误的编码)命名,要求常量名用大写,常量名用英文表达其意思。
如:#define CM_FILE_NOT_FOUND CMMAKEHR(0X20B) 其中CM表示类别。
⑨、对const 的变量要求在变量的命名规则前加入c_,即:c_+变量命名规则;例如:const char* c_szFileName;2、函数的命名规范:函数的命名应该尽量用英文表达出函数完成的功能。
遵循动宾结构的命名法则,函数名中动词在前,并在命名前加入函数的前缀,函数名的长度不得少于8个字母。
例如:long cmGetDeviceCount(……);3、函数参数规范:①、参数名称的命名参照变量命名规范。
②、为了提高程序的运行效率,减少参数占用的堆栈,传递大结构的参数,一律采用指针或引用方式传递。
③、为了便于其他程序员识别某个指针参数是入口参数还是出口参数,同时便于编译器检查错误,应该在入口参数前加入const标志。
如:……cmCopyString(const char * c_szSource, char * szDest)4、引出函数规范:对于从动态库引出作为二次开发函数公开的函数,为了能与其他函数以及Windows的函数区分,采用类别前缀+基本命名规则的方法命名。
例如:在对动态库中引出的一个图象编辑的函数定义为 imgFunctionname(其中img为image缩写)。
现给出三种库的命名前缀:①、对通用函数库,采用cm为前缀。
②、对三维函数库,采用vr为前缀。
③、对图象函数库,采用img为前缀。
对宏定义,结果代码用同样的前缀。
5、文件名(包括动态库、组件、控件、工程文件等)的命名规范:文件名的命名要求表达出文件的内容,要求文件名的长度不得少于5个字母,严禁使用象file1,myfile之类的文件名。
三、注释规范:1、函数头的注释对于函数,应该从“功能”,“参数”,“返回值”、“主要思路”、“调用方法”、“日期”六个方面用如下格式注释://程序说明开始//================================================================//// 功能:从一个String 中删除另一个String。
// 参数: strByDelete,strToDelete// (入口) strByDelete: 被删除的字符串(原来的字符串)// (出口) strToDelete: 要从上个字符串中删除的字符串。
// 返回:找到并删除返回1,否则返回0。
(对返回值有错误编码的要// 求列出错误编码)。
// 主要思路:本算法主要采用循环比较的方法来从strByDelete中找到// 与strToDelete相匹配的字符串,对多匹配strByDelete// 中有多个strToDelete子串)的情况没有处理。
请参阅:// 书名......// 调用方法:......// 日期:起始日期,如:2000/8/21.9:40--2000/8/23.21:45函数名(……)//程序说明结束①、对于某些函数,其部分参数为传入值,而部分参数为传出值,所以对参数要详细说明该参数是入口参数,还是出口参数,对于某些意义不明确的参数还要做详细说明(例如:以角度作为参数时,要说明该角度参数是以弧度(PI),还是以度为单位),对既是入口又是出口的变量应该在入口和出口处同时标明。
等等。
②、函数的注释应该放置在函数的头文件中,在实现文件中的该函数的实现部分应该同时放置该注释。
③、在注释中应该详细说明函数的主要实现思路、特别要注明自己的一些想法,如果有必要则应该写明对想法产生的来由。
对一些模仿的函数应该注释上函数的出处。
④、在注释中详细注明函数的适当调用方法,对于返回值的处理方法等。
在注释中要强调调用时的危险方面,可能出错的地方。
⑤、对日期的注释要求记录从开始写函数到结束函数的测试之间的日期。
⑥、对函数注释开始到函数命名之间应该有一组用来标识的特殊字符串。
如果算法比较复杂,或算法中的变量定义与位置有关,则要求对变量的定义进行图解。
对难以理解的算法能图解尽量图解。
2、变量的注释:对于变量的注释紧跟在变量的后面说明变量的作用。
原则上对于每个变量应该注释,但对于意义非常明显的变量,如:i,j等循环变量可以不注释。
例如: long lLineCount //线的根数。
3、文件的注释:文件应该在文件开头加入以下注释:// 工程: 文件所在的项目名。
// 作者:**,修改者:**// 描述:说明文件的功能。
// 主要函数:…………// 版本: 说明文件的版本,完成日期。
// 修改: 说明对文件的修改内容、修改原因以及修改日期。
// 参考文献: ......为了头文件被重复包含要求对头文件进行定义如下:#ifndef __FILENAME_H__#define __FILENAME_H__其中FILENAME为头文件的名字。
4、其他注释:在函数内我们不需要注释每一行语句。
但必须在各功能模块的每一主要部分之前添加块注释,注释每一组语句,在循环、流程的各分支等,尽可能多加以注释。
其中的循环、条件、选择等位置必须注释。
对于前后顺序不能颠倒的情况,建议在注释中增加序号。
例如:在其他顺序执行的程序中,每隔3—5行语句,必须加一个注释,注明这一段语句所组成的小模块的作用。
对于自己的一些比较独特的思想要求在注释中标明。
四、程序健壮性:1、函数的返回值规范:对于函数的返回位置,尽量保持单一性,即一个函数尽量做到只有一个返回位置。
(单入口单出口)。
要求大家统一函数的返回值,所有的函数的返回值都将以编码的方式返回。
例如编码定义如下:#define CM_POINT_IS_NULL CMMAKEHR(0X200):建议函数实现如下:long 函数名(参数,……){long lResult; //保持错误号lResult=CM_OK;//如果参数有错误则返回错误号if(参数==NULL){lResult=CM_POINT_IS_NULL;goto END;}……END:return lResult;}2、关于goto的应用:对goto语句的应用,我们要求尽量少用goto语句。
对一定要用的地方要求只能向后转移。
3、资源变量的处理(资源变量是指消耗系统资源的变量):对资源变量一定赋初值。
分配的资源在用完后必须马上释放,并重新赋值。
4、对复杂的条件判断,为了程序的可读性,应该尽量使用括号。
例:if(((szFileName!=NULL)&&(lCount>=0)))||(bIsRead==TRUE))五、可移植性:1、高质量的代码要求能够跨平台,所以我们的代码应该考虑到对不同的平台的支持,特别是对windows98和windowsnt的支持。
2、由于C语言的移植性比较好,所以对算法函数要求用C代码,不能用C++代码。
3、对不同的硬件与软件的函数要做不同的处理。