C 代码规范

C 代码规范
C 代码规范

C#代码规范

1、前言

本文档定义了一些通用的代码规范和准则,一般情况下本文档适用于项目组所有项目,特殊情况下,如果客户有自己的代码规范,以客户的代码优先。

2、大小写约定

2.1、大小写样式,本文中将出现两种大小写样式,这里先分别定义:

Pascal大小写

将标识符的首字母和后面连接的每个单词的首字母都大写。可以对三字符或更多字符的标识符使用Pascal大小写。例如:BackColor Camel大小写

标识符的首字母小写,而每个后面连接的单词的首字母都大写。例如:backColor

匈牙利命名法

基本原则是:变量名=属性+类型+对象描述。例如:lblName

2.2、标识符大小写规则

2.2.1、下表中列出常见的代码元素的样式规范和示例

2.2.2、除了遵循以上大小写约定外还需注意以下约定(除常量为特例):

?如果标识符由多个单词组成,请不要在各单词之间使用分隔符,如下划线(“_”)或连字符(“-”)等。而应使用大小写来指示每个单词的开头。

?所有公共的成员如:方法、属性,都应使用Pascal大小写样式

2.3、首缩写词的大小写规则

2.3.1、首字母缩写词

首字母缩写词是由术语或短语中各单词的首字母构成的单词。

例如,HTML是HypertextMarkupLanguage的首字母缩写。为了方便编码规范的实施,本文规定受字母缩写词必须至少为两个单词,正好为两个单词的首字母缩写词称其为“短型首字母缩写词”,两个单词以上的称其为“长型首字母缩写词”

2.3.2、单缩写词

单缩写词是一个单词的缩写。例如,ID是identifier的缩写。

注意:可在标识符中使用的两个缩写词是ID和OK。在采用Pascal大小写格式的标识符中,这两个缩写词的大小写形式应分别为Id和Ok。如果在采用大小写混合格式的标识符中将这两个缩写词用作首个单词,则它们的大小写形式应分别为id和ok。

2.3.3、首字母缩写词有以下大小写规则:

短型首字母缩写词在Pascal大小写样式中,两个字母都应大写。在Camel 大小写样式中,如果是首个单词,两个字母都应小写。例如:

?名为DBRate的属性是一个采用Pascal大小写格式的标识符,它使用短型首字母缩写词(DB)作为首个单词。

?名为ioChannel的参数是一个采用大小写混合格式的标识符,它使用短型首字母缩写词(IO)作为首个单词。

长型首字母缩写词,在任何大小写样式中都视为一个单词。例如:

?名为XmlWriter的类是一个采用Pascal大小写格式的标识符,它使用长型首字母缩写词作为首个单词。

?名为htmlReader的参数是一个采用大小写混合格式的标识符,它使用长型首字母缩写词作为首个单词。

2.3.4、复合词的大小写规则:

所有复合词在任何大小写样式中都视为一个完整单词。

例如,hashtable是一个紧凑格式的复合词,应将其视为一个单词并相应地确定大小写。如果采用Pascal大小写格式,则该复合词为Hashtable;如果采用大小写混合格式,则该复合词为hashtable。若要确定某个单词是否是紧凑格式的复合词,请查阅最新的词典。

2.3.5、区分大小写

大小写准则只是为了使标识符更易于阅读和辨认。不能将大小写规则用作避免库元素之间的命名冲突的手段。

3、通用命名约定

3.1、通用命名约定讨论的是如何为库元素选择最适当的名称。这些准则适用于所有标识符。后面各节讨论特定元素(如命名空间或属性)的命名。3.2、名称的选择与命名原则

3.2.1、请选择易读的标识符名称

例如,英文属性名称HorizontalAlignment比AlignmentHorizontal更具可读性。

3.2.2、可读性比简洁性更重要

例如,属性名称CanScrollHorizontally比ScrollableX(指X轴,但意义不明确)更好。

3.2.3、不要使用下划线、连字符或任何其他非字母数字字符

3.2.4、不要使用匈牙利表示法

匈牙利表示法是在标识符中使用一个前缀对参数的某些元数据进行编码,如标识符的数据类型。

3.2.5、避免使用与常用编程语言的关键字冲突的标识符

虽然符合CLS的语言必须提供将关键字用作普通字的方法,最佳做法不要求强制开发人员了解如何实现。对于大多数编程语言,语言参考文档都会提供语言所使用的关键字列表。

3.3、缩写和首字母缩写单词

尽量避免使用缩写或首字母缩写词。这类名称的可读性较差。同样,要确定某个首字母缩写词是否已受到广泛认可也是很困难的。

不要将缩写或缩略形式用作标识符名称的组成部分。例如,使用OnButtonClick而不要使用OnBtnClick。

除非必要,不要使用任何未被广泛接受的首字母缩写词。

3.4、程序集和DLL的名称

所有程序集名称都必须和项目的命名空间相对应。

3.5、命名空间的名称

3.5.1、所有命名空间都需以公司名或产品名为根命名空间。为命名空间选择的名称应指示命名空间中的类型所提供的功能。

例如,命名空间包含的类型允许开发人员使用套接字通过网络进行通信。

3.5.2、命名空间名称的一般格式如下:(<公司>|<产品>|<技术>)[.<性质>][.<子命名空间>]

例如,ClearCost.Repository.Interface。

3.5.3、命名空间和其中的类型不要使用相同的名称。

例如,不要在将“Debug”用作命名空间名称的同时,又在该命名空间中提供一个名为“Debug”的类。

3.5.4、命名空间一般准则

不要引入宽泛的类型名称,如Element、Node、Log和Message。在通常情况下,这样极可能导致类型名称冲突。应对宽泛的类型名称进行限定(例如FormElement、XmlNodeEventLog、SoapMessage)。

3.5.5、应用程序命名空间准则

不要在单个应用程序模型内为命名空间中的多个类型指定相同的名称。例如,如果要编写Windows窗体应用程序开发人员要使用的特殊控件库,则不应引入名为Checkbox的类型,因为该应用程序模型已存在同名类型。

3.5.6、核心命名空间准则

不要指定会与核心命名空间中的任何类型发生冲突的类型名称。

例如,不要使用Directory作为类型名称,因为这会与Directory类型冲突。

3.5.7、技术命名空间准则

不要分配会与单个技术命名空间内的其他类型发生冲突的类型名称。

不要引入会导致技术命名空间的类型与应用程序模型命名空间中的类型发生冲突的类型名称(除非该技术不用于该应用程序模型)。

3.6、接口、类和结构的名称

通常,类型名称应该是名词短语,其中名词是由类型表示的实体。

例如,Button、Stack和File都具有名称,用于标识由类型表示的实体。

从开发人员的角度选择标识实体的名称;名称应反映使用场合。

下面的准则适用于如何选择类型名称:

?按照Pascal大小写格式,使用名词或名词短语(或偶尔使用形容词短语)为类、接口和值类型命名。

?不要为类名加前缀(如字母C)。接口不适用此规则,它应以字母I开头。

?考虑在派生类的末尾使用基类名称。例如,从Stream继承的Framework类型以Stream结尾,从Exception继承的类型以Exception结尾。

?为接口名称加上字母I前缀,以指示该类型为接口。

?在定义类/接口对(其中类是接口的标准实现)时,一定要确保类和接口的名称除接口名称以字母I为前缀外,二者应完全相同。例如,Framework提供IAsyncResult接口和AsyncResult类。

?用描述性名称为泛型类型参数命名,除非单个字母的名称已完全可以自我说明而无需描述性名称。

?对具有一个单字母类型参数的类型,考虑将字母T用作这些类型的类型参数名称。

?将字母T作为描述性类型参数名称的前缀。

?考虑在参数名称中指示置于类型参数上的约束。例如,约束于ISession的参数可称为TSession。

3.7、常见类型的名称

下面的准则提供的命名约定有助于开发人员了解某些类的使用场合:?向自定义属性类添加Attribute后缀。

?ObsoleteAttribute和AttributeUsageAttribute是符合此准则的类型名称。

?向在事件中使用的类型(如C#事件的返回类型)的名称添加EventHandler后缀。

?AssemblyLoadEventHandler是符合此准则的委托名称。

?向不是事件处理程序的委托的名称添加Callback后缀。事件处理程序一般以EventHandler结尾

?不要向委托添加Delegate后缀。

?向扩展System.EventArgs的类添加EventArgs后缀。

?不要从System.Enum类派生;使用当前所用语言支持的关键字。例如,在C#中应使用enum关键字。

?向从System.Exception继承的类型添加Exception后缀。

?向实现IDictionary或IDictionary的类型添加Dictionary后缀。注意,是特定类型的集合,但此准则的优先级高于以下更为一般的集合准则。

?向实现IEnumerable、ICollection、IList、IEnumerable、ICollection或IList的类型添加适当的说明性后缀。

?向从继承的类型或实现的类型添加Permission后缀。

注意:以上准则中提及的从某个其他类型继承的类型,指的是所有的继承者,而不只是直接继承的类型。

例如,“向从Exception继承的类型添加Exception后缀”这一准则意味着在继承层次结构中具有Exception的任何类型都应该使用以Exception结尾的名称。每条这样的准则还用来保留指定的后缀;除非类型满足该准则表述的条件,否则不应使用该后缀。

例如,如果类型不是从Exception直接或间接继承的,则类型名称不能以Exception结尾。

3.8、枚举的名称

不要在枚举值名称中使用前缀。例如,不要对ADO枚举使用ad之类的前缀,也不要对多格式文本枚举使用rtf之类的前缀,依此类推。

这还意味着不应在枚举值名称中包含枚举类型名称。下面的代码示例演示了不正确的枚举值命名。

不要将Enum用作枚举类型的后缀。

不要在标志枚举的名称中添加Flags作为后缀(位域枚举可例外)。

对枚举使用单数名称,除非枚举值是位域。

对使用位域值的枚举(也称为标志枚举)使用复数名称。

3.9、类型成员的名称

类型包含以下几种成员:方法、属性、字段、事件

3.9.1、方法的名称

使用动词或动词短语作为方法的名称。通常,方法对数据进行操作,因此,使用动词描述方法的操作可使开发人员更易于了解方法所执行的操作。定义由方法执行的操作时,应从开发人员的角度仔细选择明确的名称。不要选择描述方法如何执行其操作的动词,也就是说,不要使用实现细节作为方法名称。

3.9.2、属性的名称

使用名词、名词短语或形容词作为属性的名称。名词短语或形容词适合于属性,因为属性保存数据。

不要使用与Get方法同名的属性。

例如,不要将一个属性命名为EmployeeRecord,又将一个方法命名为GetEmployeeRecord。开发人员会不知道使用哪个成员来完成其编程任务。

使用肯定性短语作为布尔值属性的名称(如使用CanSeek而不使用CantSeek)。

可以为布尔值属性添加前缀(如Is、Can或Has),但要注意使用得当。

考虑为属性提供与其类型相同的名称。如果某个属性已强类型化为某个枚举,则该属性可与该枚举同名。例如,如果有一个名为CacheLevel的枚举,则返回其中一个枚举值的属性也可以命名为CacheLevel。

3.9.3、事件的名称

使用动词或动词短语作为事件的名称。

在为事件命名时,使用现在时或过去时表示时间上的前后概念。

例如,在窗口关闭之前引发的关闭事件可命名为“Closing”,在窗口关闭之后引发的关闭事件可命名为“Closed”。不要使用“Before”或“After”

作为前缀或后缀来指示之前和之后发生的事件。

使用后缀EventHandler命名事件处理程序(用作事件类型的委托)。

在事件处理程序签名中使用命名为“sender”和“e”的两个参数。sender 参数的类型应为Object,e参数应是EventArgs的实例或继承自EventArgs 的实例。

使用EventArgs后缀命名事件参数类。

3.9.4、字段的名称

字段的命名准则适用于静态公共字段和静态受保护字段。不要定义公共实例字段。

在字段名称中使用Pascal大小写格式。

使用名词或名词短语作为字段的名称。

3.10、参数名称

选择适当的参数名称可极大改善库的可用性。适当的参数名称应指示该参数会影响的数据或功能。

对参数名称使用Camel大小写。

使用描述性参数名称。在大多数情况下,参数名称及其类型应足以确定参数的用法。考虑使用反映参数含义的名称而不是反映参数类型的名称。在开发人员工具和文档中,参数的类型通常都是可见的。

3.11、资源的名称

本主题中准则适用于可本地化的资源,如错误信息和菜单文本。

在资源键中使用Pascal大小写格式。

提供描述性标识符,而不要提供短标识符。尽量保持标识符的简洁性,

但不要牺牲可读性。

使用点分隔符(“.”)以清晰的层次结构表示标识符。

例如,和等名称符合此准则。

对异常消息资源使用下面的命名约定。资源标识符应由异常类型名称加上异常的短标识符构成,二者之间以点分隔。例如,ArgumentException.BadEnumValue符合此准则。

4、代码规范

4.1、目录结构

每个命名空间原则都有单独的文件目录,每个类存储于一个单独的文件中

4.2、换行

当一个表达式过长时,可以按照以下原则进行换行

?在逗号后换行

?在操作符后换行

?尽量保持运算模块的完整性

?新行应该和上一行在起始处对齐

Exampleofbreakingupmethodcalls:

longMethodCall(expr1,expr2,

expr3,expr4,expr5);

Examplesofbreakinganarithmeticexpression:

Prefer:Bad:

var=a*b/(c-g+f)+var=a*b/(c-g+

4*z;f)+4*z;

4.3、缩进

应该总是使用TAB进行代码缩进,而不是使用空格

4.4、空行

合理使用空行可以增加代码的可读性,使代码逻辑紧疏有序。

4.4.1、在下列情况下,应该使两个空行对代码进行分隔。但就尽量保持

每个类一个文件的原则避免。

?类与接口的定义之间

?类与类的定义之间

?类与枚举的定义之间

4.4.2、以下情况,应该使用一个空行对代码进行分隔

?两个方法之间

?两个属性之间

?方法与属性之间

?方法内的局部变量定义与逻辑语句之间

?方法内的明显的逻辑块之间

?备注与其他语句之间(非被备注的语句)

?Return语句与其它语句之间

Perfer:Bad:

Publicinttest()Publicinttest()

{{

intindex=0;intindex=0;

doSomething;doSomething;

returnindex;

returnindex;}

}

4.5、代码格式化

4.5.1、Using语句应该在类的顶端,并进行排序。(System置顶)4.5.2、对类内代码进行分组,推荐顺序如下:

?成员变量

?构造函数

?公共属性

?公共方法

4.5.3、对代码进行分组时,同时遵循访问符和可见性原则

?Public

?Protected

?Internal

?Private

4.5.4、对某一接口的实现,使用region进行隔离

4.5.5、如果类或方法有多个Attribute时,每个单独占用一行。

Prefer:bad:

[Attribute1][Attribute1,Attribute2]

[Attribute2]PublicClassMyClass

PublicClassMyClass

{{

}}

4.6、注释

4.6.1、使用//或///进行注释,禁止在正式代码中使用/*……*/注释。

4.6.2、除了文件头部,禁止使用类似以下的‘花式注释’

//********************

//Commentblock

//********************

4.6.3、不要用注释去解释显而易见的逻辑,好的代码应该是自注释的。

4.6.4、如果有必要,可以对复杂逻辑进行描述性注释

4.6.5、推荐文件头部注释格式

//Copyright(C)Accegile

//FileName:CodeStandSample.cs

//Filedescription:

//

//Createidentifier:klu2007-02-06

//

//Modificationidentifier:klu2007-02-07

//Modificationdescription:

//

//Modificationidentifier:

//Modificationdescription:

5、语言使用最佳实践

5.1、基本原则

?显式的定义所有成员的访问符。

Prefer:Bad:

publicvoidWriteEvent(stringmessage);voidWriteEvent(stringmessage);

?根据代码版本手动增加程序集的版本号,而不总是1.0。(AssemblyVersionAttributeinassemblyinfo)

?如果有必要使用unsafe代码,尽量把它们写到一个单独的程序集里

5.2、变量和类型

?在定义变量时,最好立即进行初始化。比如:inti=0;strings=string.Empty;

?使用简单的值类型,而不是其对应的类或结构。比如使用int而不是Int32.

?只对简单类型定义常量,对于复杂类型,应定义只读或静态只读变量,在构造时进行初始化。

?尽量使用泛型以避免装箱和拆箱操作

?除非明确知道子类型,应尽量避免直接类型转换,应该使用as,并进行null检查。

Example:

objectdataObject=LoadData();

Datasetds=dataObjectasDataset;

If(ds!=null)

{}

?在字符串前边使用@符号,而不是对字符串进行逐个转义

?对大量的字符串连接使用string.Format或StringBuilder.

?尽量避免在未知长度的循环中使用字符串连接,代以StringBuilder.

?不要对字符串使用=和string.Empty或””进行比较,应使用string.IsNullOrEmpty.

?尽量避免字符串的隐式转换,应使用Compare方法。尤其是在循环中,可能引发较大的性能损失。

Example

PerferBad

If(https://www.360docs.net/doc/1e712157.html,pare(https://www.360docs.net/doc/1e712157.html,,name,true))If(()==name)

?避免用表达式去重复计算一个bool值

PerferBad

If(isValid)If(isValid==true)

6、异常处理

?只在你需要处理异常的地方去catch它,而不是随意的catch和重新抛出

?不要使用try-catch去进行代码流控制,而是用验证去避免造成异常

Perfer Bad

If(conn.State==ConnectionState.Open)try{

{Conn.Close();

Conn.Close();}

}catch{}

?允许异常冒泡,而不是重新抛出异常。除非你想要代之以一个自定义异常,此时应以原异常做为它的InnerException.

PerferBad

catch(Exceptionex)catch(Exceptionex)

{{

Log(ex)Log(ex);

throw;throwex;

}}

catch(Exceptionex)catch(Exceptionex)

{{

Log(ex)Log(ex);

thrownewCustomException(“msg”,ex);thrownewCustomException(“msg”);

}}

C语言注释规范

C语言注释规范 1.注释原则 同一软件项目开发中,尽量保持代码注释规范和统一。 注释方便了代码的阅读和维护。 边写代码边注释,修改代码时要相应修改注释,保证注释和代码的一致性。 注释要简洁明确,不要出现形容词。 对于写的好的注释,我们将是第一个受益者。 大型软件开发中,通过别人的注释可以快速知道他人所写函数的功能,返回值,参数的使用。 2.文件头部的注释 示例: / * Program Assignment : 该文件的作用 * Author: 作者 * Date: 2013/8/6 14:34 * Description: 该文件的描述 *****/ /* * Source code in : 源代码的路径 * Function List: * initLinear 初始化线性表 * destoryLinear 释放线性表申请的空间 * isLinearEmpty 判断线性表是否为空 * isLinearFull 判断线性表是否为满 * getLinearElementValue 取得下标为index的元素的值 */ 注意:这个函数列表可以快速查询到我们想要了解的函数。 3.结构体,全局变量等的注释 示例: typedef POLYNOMIAL USER_TYPE; /* 新的数据类型的描述*/ int a; /* 全局变量的作用*/ /* 说明结构体的功能*/ typedef struct LINEAR { USER_TYPE *data; /* 每个成员的意义(作用) */ int maxRoom; /* 每个成员的意义(作用) */

int elementCount; /* 每个成员的意义(作用) */ }LINEAR; 4.函数的注释 在逻辑性较强的的地方加入注释,以便其他人的理解,在一定的程度上排除bug。 示例: /* * Function Name: getLinearElementIndex * Purpose: 取得元素的index值 * Params : * @LINEAR linear 线性表实例 * @USER_TYPE var 类型为USER_TYPE的实例 * @int (*)() cmp 提供接口,让用户定义具体比较函数 * Return: int 返回元素的index值 * Limitation: 如果返回-1,则代表不存在var的元素 */ int getLinearElementIndex(LINEAR linear, USER_TYPE var, int (*cmp)()) { /* * 如果逻辑太过复杂,这里写明该算法的过程和思路。 */ boolean found = FALSE; int i; for(i = 0; i < && !found; i++) if(cmp[i], var) == 0) found = TRUE; if(i >= i = NOT_FOUND; return i; }

C语言编码规范

C语言编程规范 对于程序员来说,能工作的代码并不等于“好”的代码。“好”代码的指标很多,包括易读、易维护、易移植和可靠等。其中,可靠性对嵌入式系统非常重要,尤其是在那些对安全性要求很高的系统中,如飞行器、汽车和工业控制中。这些系统的特点是:只要工作稍有偏差,就有可能造成重大损失或者人员伤亡。一个不容易出错的系统,除了要有很好的硬件设计(如电磁兼容性),还要有很健壮或者说“安全”的程序。 然而,很少有程序员知道什么样的程序是安全的程序。很多程序只是表面上可以干活,还存在着大量的隐患。当然,这其中也有C语言自身的原因。因为C语言是一门难以掌握的语言,其灵活的编程方式和语法规则对于一个新手来说很可能会成为机关重重的陷阱。同时,C语言的定义还并不完全,即使是国际通用的C语言标准,也还存在着很多未完全定义的地方。要求所有的嵌入式程序员都成为C语言专家,避开所有可能带来危险的编程方式,是不现实的。最好的方法是有一个针对安全性的C语言编程规范,告诉程序员该如何做。 本规范在制定过程中,主要参考了业界比较推崇的《华为软件编程规范和范例》和《MI SRA 2004规则》,适合C语言初学者使用,目的在于在教学中培养学生良好的编程规范和意识、素质,促进所设计程序安全、健壮、可靠、可读与可维护(程序简单、清晰)。考虑到面向的是初学者,为便于教学和课程考核操作,本规范中的要求比较基本。事实上,很多公司都有自己规定的代码风格,包括命名规则、缩进规则等,学生参加工作后,应再进一步学习和应用公司的规范。 建议学生在学习本规范的同时,花点时间阅读本规范的参考文献原文,特别是熟读本规范的参考文献之一的《“安全第一”的C语言编程规范》,深刻理解编程规范与程序安全、健壮、可靠、可读、可维护间的关系和作用,在学习和工作中养成良好的编程风格。 1 排版 1.1 严格采用阶梯层次组织程序代码 函数或过程的开始、结构的定义及循环、判断等语句中的代码都要采用缩进风格,case 语句下的情况处理语句也要遵从语句缩进要求。 程序块的分界符(如C/C++ 语言的大括号‘{’和‘}’)应各独占一行并且位于同一列,同时与引用它们的语句左对齐。在函数体的开始、类的定义、结构的定义、枚举的定义以及if 、for 、do 、while 、switch 、case 语句中的程序都要采用如上的缩进方式。 各层次缩进的风格采用TAB缩进(TAB宽度原则上使用系统默认值,TC使用8空格宽度,VC使用4空格宽度)。示例:

C 代码规范

C#代码规范 1、前言 本文档定义了一些通用的代码规范和准则,一般情况下本文档适用于项目组所有项目,特殊情况下,如果客户有自己的代码规范,以客户的代码优先。 2、大小写约定 2.1、大小写样式,本文中将出现两种大小写样式,这里先分别定义: Pascal大小写 将标识符的首字母和后面连接的每个单词的首字母都大写。可以对三字符或更多字符的标识符使用Pascal大小写。例如:BackColor Camel大小写 标识符的首字母小写,而每个后面连接的单词的首字母都大写。例如:backColor 匈牙利命名法 基本原则是:变量名=属性+类型+对象描述。例如:lblName 2.2、标识符大小写规则 2.2.1、下表中列出常见的代码元素的样式规范和示例

2.2.2、除了遵循以上大小写约定外还需注意以下约定(除常量为特例): ?如果标识符由多个单词组成,请不要在各单词之间使用分隔符,如下划线(“_”)或连字符(“-”)等。而应使用大小写来指示每个单词的开头。 ?所有公共的成员如:方法、属性,都应使用Pascal大小写样式 2.3、首缩写词的大小写规则 2.3.1、首字母缩写词 首字母缩写词是由术语或短语中各单词的首字母构成的单词。 例如,HTML是HypertextMarkupLanguage的首字母缩写。为了方便编码规范的实施,本文规定受字母缩写词必须至少为两个单词,正好为两个单词的首字母缩写词称其为“短型首字母缩写词”,两个单词以上的称其为“长型首字母缩写词”

2.3.2、单缩写词 单缩写词是一个单词的缩写。例如,ID是identifier的缩写。 注意:可在标识符中使用的两个缩写词是ID和OK。在采用Pascal大小写格式的标识符中,这两个缩写词的大小写形式应分别为Id和Ok。如果在采用大小写混合格式的标识符中将这两个缩写词用作首个单词,则它们的大小写形式应分别为id和ok。 2.3.3、首字母缩写词有以下大小写规则: 短型首字母缩写词在Pascal大小写样式中,两个字母都应大写。在Camel 大小写样式中,如果是首个单词,两个字母都应小写。例如: ?名为DBRate的属性是一个采用Pascal大小写格式的标识符,它使用短型首字母缩写词(DB)作为首个单词。 ?名为ioChannel的参数是一个采用大小写混合格式的标识符,它使用短型首字母缩写词(IO)作为首个单词。 长型首字母缩写词,在任何大小写样式中都视为一个单词。例如: ?名为XmlWriter的类是一个采用Pascal大小写格式的标识符,它使用长型首字母缩写词作为首个单词。 ?名为htmlReader的参数是一个采用大小写混合格式的标识符,它使用长型首字母缩写词作为首个单词。 2.3.4、复合词的大小写规则: 所有复合词在任何大小写样式中都视为一个完整单词。 例如,hashtable是一个紧凑格式的复合词,应将其视为一个单词并相应地确定大小写。如果采用Pascal大小写格式,则该复合词为Hashtable;如果采用大小写混合格式,则该复合词为hashtable。若要确定某个单词是否是紧凑格式的复合词,请查阅最新的词典。 2.3.5、区分大小写 大小写准则只是为了使标识符更易于阅读和辨认。不能将大小写规则用作避免库元素之间的命名冲突的手段。 3、通用命名约定

C语言编程规范

编码规范 1. 头文件编码规范 (2) 2. 函数编写规范 (2) 3. 标识符命名与定义 (2) 3.1通用命名规则 (2) 3.2 变量命名规则 (3) 3.3函数命名规则 (3) 3.4 宏的命名规则 (3) 4. 变量 (3) 5. 宏、常量 (4) 6. 质量保证 (4) 7. 程序效率 (5) 8. 注释 (5) 9. 排版与格式 (6) 10. 表达式 (7) 11. 代码编辑、编译 (7) 12. 安全性 (7) 13. 可读性 (7) 14. 可测性 (7) 15. 单元测试 (8) 16. 可移植性 (8)

1. 头文件编码规范 1. 禁止头文件循环依赖。 2. .c/.h文件不要包含用不到的头文件。 3. 禁止在头文件中定义变量。 4. 同一产品统一包含头文件排列方式。(如功能块排序、文件名升序、稳定度排序。) 5. 只能通过包含头文件的方式使用其他.c提供的接口,禁止在.c中通过extern的方式使用外部函数接口、变量。 2. 函数编写规范 1. 一个函数仅完成一件功能。 2. 重复代码应该尽可能提炼成函数。 3.为简单功能编写函数 4.函数的返回值要清楚、明了,让使用者不容易忽视错误情况。 5. 避免函数过长,新增函数不超过100行(非空非注释行)。 6. 避免函数的代码块嵌套过深,新增函数的代码块嵌套不超过4层。 7. 可重入函数应避免使用全局变量和禁止使用static变量。 8. 设计高扇入,合理扇出(小于7)的函数。 9. 废弃代码(没有被调用的函数和变量)要及时注释(有助于更好理解程序)。 10. 对所调用函数的错误返回码要仔细、全面地处理。 11. 函数不变参数使用const。 12. 函数应避免使用全局变量、静态局部变量和I/O操作,不可避免的地方应集中使用。 13. 函数的参数个数不超过5个。 14. 减少或禁止函数本身或函数间的递归调用 3. 标识符命名与定义 3.1通用命名规则 1. 标识符的命名要清晰、明了,有明确含义,同时使用完整的单词或大家基本可以理解的缩写,避免使人产生误解。 2. 除了常见的通用缩写以外,不使用单词缩写,不得使用汉语拼音。 示例: argument 可缩写为arg buffer 可缩写为buff clock 可缩写为clk command 可缩写为cmd compare 可缩写为cmp configuration 可缩写为cfg device 可缩写为dev error 可缩写为err hexadecimal 可缩写为hex increment 可缩写为inc initialize 可缩写为init maximum 可缩写为max message 可缩写为msg minimum 可缩写为min parameter 可缩写为para

C语言编写规范之注释

1、头文件包含Includes 2、私有类型定义 Private typedef 3、私有定义Private define 4、私有宏定义 Private macro 5、私有变量 Private variables 6、私有函数原型Private function prototypes 7、私有函数Private functions 8、私有函数前注释 /****************************************************************************** * * Function Name : FSMC_NOR_Init * Description : Configures the FSMC and GPIOs to interface with the NOR memory. * This function must be called before any write/read operation * on the NOR. * Input : None * Output : None * Return : None ******************************************************************************* / 9、程序块采用缩进风格编写,缩进空格为4。 10、相对独立的程序块之间、变量说明之后必须加空行; 11、较长的字符(>80字符)要分成多行书写,长表达式要在低优先级操作符划分新行,操作符放在新行之首,新行要恰当缩进,保持排版整齐; 12、循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分,长表达式要在低优先级操作符处划分新行,操作符放在新行之首; 13、若函数或过程中的参数较长,则要进行适当的划分。 14、不允许把多个短语句写在一行中,即一行只写一条语句。 15、if、for、do、while、case、switch、default等语句自占一行,且if、for、 do、while等语句的执行语句部分无论多少都要加括号{}。 16、对齐只使用空格键,不使用TAB键; 17、 函数或过程的开始、结构的定义及循环、判断等语句中的代码都要采用缩进风格,case 语句下的情况处理语句也要遵从语句缩进要求 18、 程序块的分界符(如C/C++语言的大括号‘{’和‘}’)应各独占一行并且位于同一 列,同时与引用它们的语句左对齐。在函数体的开始、类的定义、结构的定义、枚举的定义以 及if、for、do、while、switch、case语句中的程序都要采用如上的缩进方式。 19、 在两个以上的关键字、变量、常量进行对等操作时,它们之间的操作符之前、之后或

标准C语言规范

C语言编码规范 1.文件、函数规范 根据功能划分文件。文件名与主控函数名相同;主控函数必须放在最前面;函数的长度一般不宜超过150行;文件长度不宜超过500行。标准的文件头格式如下: 函数名: 功能: 调用函数:所涉及的主要功能函数 调用参数:必须详细说明 返回值: 编写时间: 修改时间:修改时包含此项 2.命名规范 ①函数命名规范 以便于理解为原则,由一个或多个单词或单词缩写组合而成,单词首字母大写。 如AddItem(),GetInt(),FxaUp() ②变量命名规范 由变量类型为前缀,加上函数命名规范组合而成。具体前缀命名方法如下:sh------short, i------int, l------long, c------char, f------float, d------double, p------pointer 字符串数组也使用p标志 静态变量名前用s标志 数组变量名前用stru标志 全局变量使用前缀g_标志 如:dBalance,fInterest,pName, sCustomer,struPersonWang, g_iOperNo 3.书写规范 ⑴对齐原则 同一层次的语句必须左对齐。“{”和“}”必须独占一行。 ⑵缩进原则 不同层次的语句必须遵从缩进原则,一般缩进四个字符为宜,TAB值设为4。 Case后的语句(简短注释语句除外)应另起一行,且须与“:”相接。 ⑶分行书写原则 当行超过屏幕上的行时,应分行书写。 ⑷注释符要求 单行注释符使用“//”,多行注释符使用“/*……*/”,注释符必须遵从前面3条原则,“/*”应与“*/”对齐。 4.语法规范

C语言开发规范

软件开发规范 在研究项目团队协作开发的情况下(这里的团队协作也适合于应用项目的开发),编程时应该强调的一个重要方面是程序的易读性,在保证软件速度等性能指标能满足用户需求的情况下,能让其他程序员容易读懂你所编写的程序。若研究项目小组的所有开发人员都遵循统一的、鲜明的一套编程风格,可以让协作者、后继者和自己一目了然,在很短的时间内看清楚程序结构,理解设计的思路,大大提高代码的可读性、可重用性、程序健壮性、可移植性、可维护性。 制定本编程规范的目的是为了提高软件开发效率及所开发软件的可维护性,提高软件的质量。本规范由程序风格、命名规范、注释规范、程序健壮性、可移植性、错误处理以及软件的模块化规范等部分组成。 本软件开发规范适合讨论C/C++程序设计。 1 文件结构 每个C++/C程序通常分为两个文件。一个文件用于保存程序的声明(declaration),称为头文件。另一个文件用于保存程序的实现(implementation),称为定义(definition)文件。 C++/C程序的头文件以“.h”为后缀,C程序的定义文件以“.c”为后缀,C++程序的定义文件通常以“.cpp”为后缀(也有一些系统以“.cc”或“.cxx”为后缀)。 文件信息声明 文件信息声明位于头文件和定义文件的开头(参见示例1-1),主要内容有:(1)版权信息; (2)文件名称,项目代码,摘要,参考文献; ? (3)当前版本号,作者/修改者,完成日期; (4)版本历史信息; (5)主要函数描述。

.... 例如一个short*型的变量应该表示为pnStart; ☆【规则】全局变量用g_开头;例如一个全局的长型变量定义为g_lFileNum, 即:变量名=g_+变量类型+变量的英文意思(或缩写); ☆【规则】静态变量采用s_开头;例如一个静态的指针变量定义为s_plPrevInst, 即:变量名=s_+变量类型+变量的英文意思(或缩写);

c代码规范

c代码规范(总7页) -CAL-FENGHAI.-(YICAI)-Company One1 -CAL-本页仅作为文档封面,使用请直接删除

C# 代码规范 1、前言 本文档定义了一些通用的代码规范和准则,一般情况下本文档适用于项目组所有项目,特殊情况下,如果客户有自己的代码规范,以客户的代码优先。 2、大小写约定 2.1、大小写样式,本文中将出现两种大小写样式,这里先分别定义: Pascal大小写 将标识符的首字母和后面连接的每个单词的首字母都大写。可以对三字符或更多字符的标识符使用 Pascal 大小写。例如:BackColor Camel大小写 标识符的首字母小写,而每个后面连接的单词的首字母都大写。例如:backColor 匈牙利命名法 基本原则是:变量名=属性+类型+对象描述。例如:lblName 2.2、标识符大小写规则 2.2.1、下表中列出常见的代码元素的样式规范和示例 标识符规则示例 类Pascal AppDomain 枚举类型Pascal ErrorLevel 枚举值Pascal Warning 事件Pascal ValueChanging, ValueChanged 异常类Pascal WebException 只读的静态字段Pascal CurrentUser 接口Pascal IDisposable 方法Pascal ToString 命名空间Pascal 参数Camel typeName 属性Pascal Name 常量全大写MAXLENGTH, LENGTH_MAX Web或Win控件匈牙利txtName 2.2.2、除了遵循以上大小写约定外还需注意以下约定(除常量为特例): 如果标识符由多个单词组成,请不要在各单词之间使用分隔符,如下划线(“_”)或连字符(“-”)等。而应使用大小写来指示每个单词的开头。 所有公共的成员如:方法、属性,都应使用Pascal大小写样式 2.3、首缩写词的大小写规则 2.3.1、首字母缩写词 首字母缩写词是由术语或短语中各单词的首字母构成的单词。 例如,HTML 是 Hypertext Markup Language 的首字母缩写。为了方便编码规范的实施,本文规定受字母缩写词必须至少为两个单词,正好为两个单词的首字母缩写词称其为“短型首字母缩写词”,两个单词以上的称其为“长型首字母缩写词” 2.3.2、单缩写词

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 格式来引用标准库的头文件(编译器将从标准库目录开始搜索)。 【规则1-2-3】用#include “filename.h”格式来引用非标准库的头文件(编译器将从用户的工作目录开始搜索)。 【规则1-2-4】#include 后面使用TAB键控制排版。 【规则1-2-5】头文件中只存放“声明”而不存放“定义”

C_C++代码规范

int fun (int x , int y , int z ){ …… return 0; }if (a >= b && b >= c && c >= d && ...... ) if (p !- NULL ) delete p ;x += y ; val = (mark << 3); void fun (int x , int y , int z ) for (i = 0; i < 10; ++i ) ps :void fun (int x , int y )if (x == y ) i ++; char *p = &temp ; tmp = p ->size ; tmp = q .val ; a = (p +q ) * (m -n ) / (i +j ); 代码规范 1、布局和风格 1、总体布局 2、空格 总体目标:准确表现代码的逻辑结构;改善可读性;经得起修改。 采用纯块布局,即 “{” “}” 垂直对齐; 缩进为4字节,巧用Tab键。 对于复杂的表达式,将条件分格在几行; 一行代码宽度应不超过80个字符,对于较长的语句,应该分行书写,增加代码的可读性。每行仅写一条语句 有需要空格的地方: 双目运算符两侧,需要留有空格。如“=”, “+=”, “>=“, ”+“, ”&&“等函数参数之间逗号后; for语句的分号后面要留有空格 不留空格的地方: 函数名紧跟左括号; 左空号右边和右括号左边不用空格 定义变量后最好加上空行;函数与函数之间最好加上空行; 对于表达式较长的语句,适当去掉空格 [],->, .,等操作符前后不加空格 单目运算符前后不加空格,如”!“, ”&”,“++”等

c语言程序代码编写规范

C语言程序代码编写规范 (初级程序员讨论版) 前言 一个好的程序编写规范是编写高质量程序的保证。清晰、规范的源程序不仅仅是方便阅读,更重要的是能够便于检查错误,提高调试效率,从而最终保证软件的质量和可维护性。 说明 此文挡还在完善改进中,如有不足,欢迎指正。 本文档主要适用于刚刚开始接触编程的初学者。 对于具有一定工程项目开发经验的程序员,建议学习C语言程序代码编写规范 —高级版。 目录 1代码书写规范 2注释书写规范 3命名规范

内容 1 代码书写规范 函数定义 每个函数的定义和说明应该从第1列开始书写。函数名(包括参数表)和函数体的花括号(“{”和“}”)应该各占一行。在函数体结尾的括号(“}”)后面应该加上注释,注释中应该包括函数名,这样比较方便进行括号配对检查,也可以清晰地看出来函数是否结束。 范例1:函数的声明 void matMyFunction(int n) { …… } /* matMyFunction*/ 空格的使用 使用空格分割所有演算符号和操作数。 这条规则的例外是“->”,““.”, “()”和“[]”,这些操作符和操作数之间不空格。 当需要把一个程序行的内容分成几行写时,操作符号应该放在行末,而不是下一行的开头。 缩进的设置 代码书写应该遵从结构化的要求,采用缩进的格式。最小缩进量为4个空格,整个文件内部应该统一,不要混用Tab键和4个空格这两种情况,因为不同的编辑器对Tab键的处理方法不同。 折行的使用 每行的长度不要超过80个字符,当程序行太长时,应该分行书写。 分行时应该按照自然的逻辑关系进行,例如:不要把一个简单的逻辑判断写在 两行上。 分行后的缩进应该按照程序的逻辑关系进行对齐。例如:参数表折行后,下面 的行应该在参数表左括号的下方。 范例2:折行的格式

C语言编程规范标准

编码规 1. 头文件编码规 (2) 2. 函数编写规 (2) 3. 标识符命名与定义 (2) 3.1通用命名规则 (2) 3.2 变量命名规则 (3) 3.3函数命名规则 (3) 3.4 宏的命名规则 (3) 4. 变量 (3) 5. 宏、常量 (4) 6. 质量保证 (4) 7. 程序效率 (5) 8. 注释 (5) 9. 排版与格式 (6) 10. 表达式 (7) 11. 代码编辑、编译 (7) 12. 安全性 (7) 13. 可读性 (7) 14. 可测性 (7) 15. 单元测试 (8) 16. 可移植性 (8)

1. 头文件编码规 1. 禁止头文件循环依赖。 2. .c/.h文件不要包含用不到的头文件。 3. 禁止在头文件中定义变量。 4. 同一产品统一包含头文件排列方式。(如功能块排序、文件名升序、稳定度排序。) 5. 只能通过包含头文件的方式使用其他.c提供的接口,禁止在.c过extern的方式使用外部函数接口、变量。 2. 函数编写规 1. 一个函数仅完成一件功能。 2. 重复代码应该尽可能提炼成函数。 3.为简单功能编写函数 4.函数的返回值要清楚、明了,让使用者不容易忽视错误情况。 5. 避免函数过长,新增函数不超过100行(非空非注释行)。 6. 避免函数的代码块嵌套过深,新增函数的代码块嵌套不超过4层。 7. 可重入函数应避免使用全局变量和禁止使用static变量。 8. 设计高扇入,合理扇出(小于7)的函数。 9. 废弃代码(没有被调用的函数和变量)要及时注释(有助于更好理解程序)。 10. 对所调用函数的错误返回码要仔细、全面地处理。 11. 函数不变参数使用const。 12. 函数应避免使用全局变量、静态局部变量和I/O操作,不可避免的地方应集中使用。 13. 函数的参数个数不超过5个。 14. 减少或禁止函数本身或函数间的递归调用 3. 标识符命名与定义 3.1通用命名规则 1. 标识符的命名要清晰、明了,有明确含义,同时使用完整的单词或大家基本可以理解的缩写,避免使人产生误解。 2. 除了常见的通用缩写以外,不使用单词缩写,不得使用汉语拼音。 示例: argument 可缩写为arg buffer 可缩写为buff clock 可缩写为clk command 可缩写为cmd compare 可缩写为cmp configuration 可缩写为cfg device 可缩写为dev error 可缩写为err hexadecimal 可缩写为hex increment 可缩写为inc initialize 可缩写为init maximum 可缩写为max message 可缩写为msg minimum 可缩写为min parameter 可缩写为para

C语言格式书写规范

C语言格式书写规范 Document number:NOCG-YUNOO-BUYTT-UU986-1986UT

C语言书写规范指南 第1章文件结构 每个C程序通常分为两个文件。一个文件用于保存程序的声明(declaration),称为头文件。另一个文件用于保存程序的实现(implementation),称为定义(definition)文件。 C程序的头文件以“.h”为后缀,C程序的定义文件以“.c”为后缀。 版权和版本的声明 版权和版本的声明位于头文件和定义文件的开头(参见示例1-1),主要内容有: (1)版权信息。 (2)文件名称,标识符,摘要。 (3)当前版本号,作者/修改者,完成日期。 (4)版本历史信息。 /* *Copyright(c)2001,吉林大学物理学院无线电 *Allrightsreserved. * *文件名称: *文件标识: *摘要:简要描述本文件的内容 * *当前版本: *作者:输入作者(或修改者)名字 *完成日期:2007年7月20日 * *取代版本: *原作者:输入原作者(或修改者)名字 *完成日期:2007年5月10日 */ 示例1-1版权和版本的声明 头文件的结构 头文件由三部分内容组成: (1)头文件开头处的版权和版本声明(参见示例1-1)。 (2)预处理块。 (3)函数和类结构声明等。

假设头文件名称为,头文件的结构参见示例1-2。 【规则1-2-1】为了防止头文件被重复引用,应当用#ifndef/#define/#endif结构产生预处理块。 【规则1-2-2】用#include <>格式来引用标准库的头文件(编译器将从标准库目录开始搜索)。 【规则1-2-3】用#include “”格式来引用非标准库的头文件(编译器将从用户的工作目录开始搜索)。 【规则1-2-4】#include后面使用TAB键控制排版。 【规则1-2-5】头文件中只存放“声明”而不存放“定义” 【规则1-2-6】全局变量在头文件中声明,在.c文件中定义 .hexternintvalue;声明。 .cintvalue=0x10;定义。 【规则1-2-7】局部变量在.c中定义(static)unsignedintvalue;定义。 、“->”这类操作符前后不加空格。 【建议2-3-1】对于表达式比较长的for语句和if语句,为了紧凑起见可以适当

华为技术有限公司c语言编程规范

DKBA 华为技术有限公司内部技术规范 DKBA 2826-2011.5 C语言编程规范 2011年5月9日发布 2011年5月9日实施 华为技术有限公司 Huawei Technologies Co., Ltd. 版权所有侵权必究 All rights reserved

修订声明Revision declaration 本规范拟制与解释部门: 本规范的相关系列规范或文件: 相关国际规范或文件一致性: 替代或作废的其它规范或文件: 相关规范或文件的相互关系:

目录Table of Contents 0规范制订说明 (5) 0.1前言 (5) 0.2代码总体原则 (5) 0.3规范实施、解释 (6) 0.4术语定义 (6) 1头文件 (6) 2函数 (12) 3标识符命名与定义 (21) 3.1通用命名规则 (21) 3.2文件命名规则 (23) 3.3变量命名规则 (23) 3.4函数命名规则 (24) 3.5宏的命名规则 (24) 4变量 (25) 5宏、常量 (28) 6质量保证 (32) 7程序效率 (36) 8注释 (39) 9排版与格式 (44) 10表达式 (46) 11代码编辑、编译 (49) 12可测性 (50) 13安全性 (51) 13.1字符串操作安全 (51) 13.2整数安全 (52) 13.3格式化输出安全 (56) 13.4文件I/O安全 (57) 13.5其它 (59) 14单元测试 (59) 15可移植性 (60) 16业界编程规范 (60)

C语言编程规范 范围: 本规范适用于公司内使用C语言编码的所有软件。本规范自发布之日起生效,以后新编写的和修改的代码应遵守本规范。 简介: 本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

C语言编程规范

第一章 C语言编程规范 C语言编程规范使用于所有的平台程序和应用程序开发。 C语言编程规范分为编程环境,命名规范,内容排列,书写格式,注释规范和程序修改等六部分内容。 具体格式参见《C头文件样本》和《C源程序样本》。 1.1编程环境。 包括目录及其权限设置,makefile使用两部分内容。 1.1.1目录设置。 进行C语言程序开发,一般设置如下六个目录。 各目录及其文件的权限一般使用系统确省,也可根据具体需要进行设置。 ●SRC:存放C源程序文件(*.c),数据库语言程序文件(如*.ec)。 ●INCL:存放C头文件(*.h)。 ●OBJ:存放目标文件(*.o)。 ●LIB:存放一般库文件(*.a),动态链接库文件(如*.so)。 ●BIN:存放可执行文件,SHELL文件。 ●BAK:源程序和头文件备份目录(以日期做文件后缀,如*.990806)。 1.1.2Makefile使用。 Makefile存放在SRC目录下,控制程序的编译与连接,库的生成与更新。 Makefile的定义内容和排列顺序为: ●编程环境目录宏定义。 ●C头文件搜索目录宏定义。 ●库文件搜索目录宏定义。 ●编译控制参数宏定义。 ●一般程序编译与连接方法。

●全部程序编译与连接列表。 ●复杂程序(多个.o)连接方法。 1.2命名规范。 包括源程序文件,头文件,目标文件,库文件,执行文件,宏定义,变量,结构,结构元素,函数等十类命名规范。 各类命名规范均基于《系统基本数据名称集》。 1.2.1源程序文件。 ●一般形式:AAABCCCC。不得超过8个字符。 ●AAA(2或3个字符):表示该源程序所属的系统(如btp,feb等)。 ●B:一般情况可省略。当多个源程序文件属于同一功能的分支程序,用来 表示源程序文件的功能类型(如m表示主程序,i表示输入,o表示输出等)。 ●CCCC:表示源程序的功能。 1.2.2头文件。 ●一般形式:AAACCCCC。不得超过8个字符。 ●AAA(2或3个字符):表示该头文件所属的系统(如btp,feb等)。 ●CCCCC:表示头文件的功能。 ●如头文件只被某一个源程序文件使用,名称应和源程序文件名称相同。 1.2.3目标文件。 ●一般的,应和源程序文件名称相同。 ●如和源程序文件名称不同,须得到主设计人员和部门主管同意。 1.2.4库文件。 ●库文件的名称一般在系统总体设计时即确定。 ●一般形式:libAAACCCC。 ●前三个字符一般固定为lib。 ●AAA(2或3个字符):表示该库文件所属的系统(如btp,feb等)。

C语言编码规范

C语言编码规范

文档修改记录 版本版本日期说明编写者审核者V0.1吕晓敏

1排版规则 1)程序应采用缩进风格编写,每层缩进使用一个制表位(TAB),类定义、方法都应顶 格书写; 2)源程序建议使用英文书写,尽量不含有中文。每行不超过80字符。对于较长的语 句(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读;循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分; 3)左花括号要另起一行,不能跟在上一行的行末; 4)一个变量定义占一行,一个语句占一行; 5)对独立的程序块之间、变量说明之后必须加空行; 6)在结构成员赋值等情况,等号对齐,最少留一个空格; 7)若函数或过程中的参数较长,则要进行适当的划分。 8)形参的排序风格: 最常使用的参数放在第一位; 输入参数列表应放在输出参数列表的左边; 将通用的参数放在特殊的参数的左边。 2命名规范 2.1应用程序的命名 “系统简称”+模块名称 2.2子模块的命名 每个子模块的名字应该由描述模块功能的1-3以单词组成。每个单词的首字母应大写。在这些单词中可以使用一些较通用的缩写。 2.3变量的命名 变量的命名的基本原则是使得变量的含义能够从名字中直接理解。可以用多个英文单词拼写而成,每个英文单词的首字母要大写,其中英文单词有缩写的可用缩写;变量的前缀表示该变量的类型;对于作用域跨越10行以上的变量名称不能少于4个字符,除循环变量,累加变量外不得使用I、j、k等名称的变量。变量分为取全局变量和局部变量,对于全局变量以加前缀“g_”来区分。 使用有意义的英语单词,使用大小写分隔,每个单词的第一个字母为大写标识符种类书写规范示例 函数/过程名/变量一般标识符CheckButtonStates 宏标识符大写标识符SALES_TAX 类型定义‘T’+一般标识符TMyType 类标识符‘C’+一般标识符CEditBox 结构标识符‘S’+一般标识符SMyStructure 联合标识符‘U’+一般标识符UMyUnion

c代码规范

C# 代码规范 1、前言 本文档定义了一些通用的代码规范和准则,一般情况下本文档适用于项目组所有项目,特殊情况下,如果客户有自己的代码规范,以客户的代码优先。 2、大小写约定 2.1、大小写样式,本文中将出现两种大小写样式,这里先分别定义: Pascal大小写 将标识符的首字母和后面连接的每个单词的首字母都大写。可以对三字符或更多字符的标识符使用 Pascal 大小写。例如:BackColor Camel大小写 标识符的首字母小写,而每个后面连接的单词的首字母都大写。例如:backColor 匈牙利命名法 基本原则是:变量名=属性+类型+对象描述。例如:lblName 2.2、标识符大小写规则 2.2.1、下表中列出常见的代码元素的样式规范和示例

枚举类型Pascal ErrorLevel 枚举值Pascal Warning 事件Pascal ValueChanging, ValueChanged 异常类Pascal WebException 只读的静态字段Pascal CurrentUser 接口Pascal IDisposable 方法Pascal ToString 命名空间Pascal System.Data 参数Camel typeName 属性Pascal Name 常量全大写MAXLENGTH, LENGTH_MAX Web或Win控件匈牙利txtName 2.2.2、除了遵循以上大小写约定外还需注意以下约定(除常量为特例): 如果标识符由多个单词组成,请不要在各单词之间使用分隔符,如下划线(“_”)或连字符(“-”)等。而应使用大小写来指示每个单词的开头。 所有公共的成员如:方法、属性,都应使用Pascal大小写样式 2.3、首缩写词的大小写规则

C语言代码风格规范

0. 说明 本规范尚在完善中,随时更新。 代码风格以增强程序可读性和可维护性为目标,并非金科玉律。在满足可读性和可维护性的前提下,可以适当灵活。参考:高质量C++/C 编程指南 1. 注释 1.程序中必须有清晰的注释; 2.程序头部要有程序整体说明信息; 3.每个函数(main除外)都要有注释说明该函数的功能,及其参数和返回值的意义; 4.每个变量都要有注释说明其用途(for 循环中的下标除外); 5.代码中要有适当的注释说明代码段的功能。 2. 缩进 1.缩进的宽度为4个字符,鼓励用空格缩进, tab亦可(但尽量避免两者混用); 2.凡函数、if、while、for、do-while、switch等都要使用缩进。 3. 标识符命名 1.凡标识符的命名要尽量能直观反映该标识符的功能(如做到这一点,可免去注释说明); 2.标识符用英文命名,不可用汉语拼音; 3.变量命名采用“variable_name”的形式; 4.函数命名采用“FunctionName”的形式; 5.宏、常量、枚举的命名采用“MACRO_NAME”的形式。 4. 空行及空格 1.以增强可读性为目标,适当使用空行和空格; 2.不可出现连续的两个及两个以上的空行; 3.代码功能段之间用空行分隔; 4.不在行尾的每个逗号和分号后要有一个空格; 5.一般每个运算符前后都要有一个空格; 6.if, while, for, do, switch 和判断条件之间要有一个空格。 5. 其它 1.左大括号“{”后不可出现代码; 2.右大括号“}”前不可出现代码; 3.每行只能写一条代码,且该行代码总长不可超过80个字符; 4.常数应定义为宏、枚举或常量; 5.……

相关主题
相关文档
最新文档