C语言编码规范

C语言编码规范
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’+一般标识符cReadKey

字符串标识符‘s’+一般标识符sComputerName

整数标识符‘i/ui/l/ul’+一般标识

符iNumber,ulCurrent

浮点型标识符‘f/d’+一般标识符fPrice,dMoney 逻辑标识符‘b’+一般标识符bIsDetailed

对象标识符特征小写字母+一般标

识符fMyStatus,tMyTree

指针变量p+类型前缀+一般标识

符piCount

全局变量g+类型前缀+一般标识

符giCount

类私有变量f+类型前缀+一般标识

符fiCount

数据库变量以m打头miCount

考虑到习惯性和简洁性,对于按常规使用的局部变量允许采用极短的名字,如用n、i作为循环变量,p、q作为指针等。另外,要注意的是:全局变量在程序中不要定义太多,能用局部变量的就用局部变量。如果要使用相关的变量,建议采用类的方式或者结构的方式存放,以减少具体变量的个数。

2.4常量的命名

常量所有的字母均为大写。并且单词之间使用下划线”_”隔开。

2.5函数/过程的命名

函数/过程名称应该尽量使用能够表达函数功能的英文名称,函数名称中应该禁止使用如同function1,function2等含义不清的名称。单词间应该使用大小写分隔。全局函数/过程名称以“g_”前缀开始。

2.6接口命名

接口名称要以大写字母开头。如果接口包含多个单词,每个单词的首字母大写,其他字母小写,如果,这些单词是缩略语(例如XML),也要首字母大写,其他字母小写(写为Xml)。

2.7类的命名

类名称要以大写字母开头;

类名称如果包含多个单词,每个单词的首字母要大写,其他字母小写;如果这些单词是缩略语(例如XML),也要首字母大写,其他字母小写(写作Xml);

类名称应该是一个名词或名词短语;

类成员变量的命名规则与上述规则相同,但是要以“m_”开始,表示其为成员变量(Member);

类名称不能出现下划线。

2.8方法的命名

方法名称以小写字母开头。

方法名称如果包含多个单词,除了第一个单词外,每个单词的首字母大写,其它字母小写。如果这些单词是缩略语(例如XML),也要首字母大写,其它字母小写(写作Xml)。

方法名称应该是一个动词或动名词短语,意思是“完成什么功能”,“执行什么操作”。

2.9数据库的命名

2.9.1表:

采用“模块名简称+前缀+’_’+表名”的命名规则。表名以能理解该表的内容为原则,可由中文表示,也可由代表此表含义的英文字母组成;首字母大写;前缀代表此表类别。

2.9.2视图:

采用“模块名+’_’+视图名+’视图’”的命名规则,通常由8个以内汉字组成。

2.9.3存储过程:

采用“Proc+模块名+’_’+存储过程名”的命名规则。

2.9.4触发器:

采用“模块名+’_’+触发类型+’_’+表名”的命名规则,如果有多个触发类型,则可以叠加在一起。

2.9.5字段:

字段的命名以能理解该字段的含义为原则,通常由多个英文单词加前缀拼写而成,而组成字段名称的首字母应大写。单词有缩写的可用缩写。字段的前缀表示该字段的数据类型,其取值详见“数据类型”描述。原则上,字段的命名长度不超过18字节;描述字段的中文名称,用数据库创建工具设计数据库时,需要输入。

3参数的约定

3.1输入参数的约定

有些函数有输入参数,这些参数指由函数外部(调用者)输入,并在函数内部使用。在函数业务流程说明后跟输入参数说明区,用“输入参数”或“Input Parameters”标记。在参数名列表中的每个参数后增加该参数的注释。

3.2输出参数的约定

有些函数有输出参数,这些参数指由函数外部(调用者)定义,在函数内部使用并返回给调用者的参数。在输入参数说明区后跟输出参数说明区,用“输出参数”或“Output Parameters”标记。在参数名列表中的每个参数后增加该参数的注释。另外输出参数一般以指针或应用输出。

3.3返回值的约定

每个函数均有返回值,除非操作非常简单。对于有不同状态的返回值,建议用long

型的返回值,0为成功。对于出错类返回值,在同一层次的模块,用统一代码表示。在输出参数说明区后跟返回值说明区,用“返回值”或“Return values”标记。返回值说明,要说明各种不同类型返回值以及它们的含义。

4注释约定

在软件中对每个文件头,自定义函数和变量,重要的处理过程都要有必要的注释。

4.1源程序头的注释和规范

每个源程序(包括存储过程)必须有头部说明、版本说明和函数结构三个部分:

源程序头部说明

FileName: Copy Right: System: Module: Function: See also: Author: Create Date:本程序的外部名字(如*.prg,*.cpp)xxx公司版权所有版本信息

本文件所在的系统或工程的名字

本文件所在的功能模块名称

简要说明本程序的功能

相关详细设计文档号

编码人员

创建日期

源程序版本说明

Editor:Version:Edit Date:修改人员版本号修改日期

4.2函数头的注释和规范

Name: Function: Input:

Output:

Return:

Syntax: Env: Calling:函数名称

简述函数或过程的功能[参数1]-[说明…] [参数2]-[说明…] [参数1]-[说明…] [参数2]-[说明…] [返回码1]-[说明…] [返回码2]-[说明…]调用语法(可选)

环境要求和影响(可选的)被调用的函数(可选的)

4.3变量注释

直接在变量后面注明变量的用途和取值约定,例如:int status;//记录处理状态,0:成功,1:错误

4.4类型定义注释

指类和记录等等定义的注释。在注释中标明定义的用途。

4.5区的注释

同一个类的成员方法要求排列在一起,共同协作而实现同一个功能的函数和过程要求排列在一起。代码通常使用几个函数和过程来实现某一项功能,这时候需要使用区注释将这些具有共同目的的函数和过程标明出来。

使用整行的”*”作为隔离行,让程序清晰可读。

一般删除的代码不建议直接删除,最好用“//”注释起来。

4.6代码中的注释

在代码中要求注释的地方有:

代码中的关键部分;

在使用特殊算法或者逻辑性较强的代码;

在修改或删除代码部分,需要加注释;修改/删除人,目的。

5变量的作用范围

尽量做到缩小变量的作用范围,对于变量是指针的,应遵循以下约定:

在局部分配的空间在局部释放。

函数体内不能分配空间并将空间指针作为函数参数返回。

动态全局空间在程序结束时一定要释放。

所有动态分配的空间在对应层次的模块释放,并且用完马上释放。不重复释放相同的指针。

6函数/过程的定义

在函数的定义处应当增加本函数的功能描述的注释。用一句话描述清楚功能。可用英文或中文。功能注释格式要求所有代码一致。

7函数业务流程的定义

在函数功能描述后,要增加函数的主要业务流程注释。可以用多行描述,以解释清楚业务流程为主。可用英文或中文。业务流程注释格式要求所有代码一致。

业务流程注释可以尽量详细,注释的长度可以与代码长度差不多,但是不要太长。比如处理N阶乘的函数业务流程定义如下:

/*Process:N factorial use callback function to implement.If N==0then*/ /*return1else return N-1factorial.*/

/*过程:N阶乘利用回调函数实现。如果N等于零,则返回1,*/

/*否则返回N-1的阶乘。*/

注意:函数业务流程的说明并不在乎有多长,但是在乎能否说明过程。有些像N阶乘的函数流程比较简单,但是有些比较复杂。当比较复杂时,可以用标号来说明。

8接口/函数过程调用的约定

8.1头文件(.h文件)

提供给使用API的应用的标准C头文件。头文件必须包含三部分。

1)防止头文件重复引用的编译条件,即我们在创建头文件时必须增加以下的条件编

译:

#ifndef#define#endif。比如要防止abcqueue.h头文件被重复引用,必须在abcqueue.h增加以上的条件编译:

#ifndef_ABCQUEUE_H

#define_SMBUS_H

……

#endif

2)函数定义

函数的定义是为了方便应用知道LIB、DLL里引出了怎样的API,应该如何使用。如上面的例子。

3)错误代码定义

错误代码是接口API里因为内部某种错误返回的代码,它告诉应用出现了什么错误,以便开发者进行调试和排错。

8.2函数

8.2.1函数体书写规范

8.2.1.1格式化要求

每个函数代码行数应控制在400行内(不包含注释)。

用缩行显示程序结构,缩进量统一使用4个空格。

循环、分支层次不要超过五层。

括号风格采用列对齐方式,即“{”与相匹配的“}”在同一列对齐,如:

if(…)

{

}

而不是:

if(…){

}

函数参数定义采用现代风格,如:

int main(int argc,char*argv[])

而不是:

int main(argc,argv)

int argc;

char*argv[];

如果包含在条件判断和循环体中的内容比较多,结束时说明匹配的条件:

if(a!=b)

{

}/*end if(a!=b)*/

8.2.1.2合理使用空格

合理使用空格分隔语句中的各种元素,使源程序舒展,可读:

运算符两边加空格;

‘:’、’,’后跟空格;

‘if’、‘for’等关键字后跟空格;

两个函数之间至少留一空行。

8.2.1.3表达式的要求

尽量避免含有否定运算的条件表达式;

如:if(!(num>=10))应改为:if(num<10)

为避免二义性,对于复杂的表达式不论是否必要都采用加括号来分组;

如:leap_year=(year%4==0)&&(year%100!=0)||(year%400==0);

8.2.1.4宏定义要求

宏体和参数都要加上括号,如:

#define square((x)*(x))

为杜绝可能带来的副作用,尽量避免采用函数宏。

8.2.1.5注释的要求

注释要清晰,与代码保持一致,避免没有价值的注释;

保持注释与代码完全一致。

对于全局标识符(函数、全局变量、常量定义等)必须要加注释;

UNIX下C程序或存储过程注释统一用/*和*/,不允许用//;

循环语句要有注释。

分支语句要有注释。

数据库语句要有注释。

主要变量(结构、联合、类或对象)定义或引用时,注释能反映其含义。

处理过程的每个阶段都有相关注释说明。

在典型算法前都有注释。

注释可以与语句在同一行,也可以在上行。

注释行数(不包括程序头和函数头说明部份)应占总行数的1/5到1/3。 对函数中某处细节进行修改必须留下注释,其格式如下:

<程序源代码>/*[修改原因][修改者][日期]*/

8.2.2头文件书写顺序约定

文件头:

包含的头文件:

符号常数和全局常数:宏定义:

类型定义:

结构,联合和类定义:外部变量说明:

内联函数定义:见程序头部书写标准

#include

const或#define

macro或#define typedef

struct|union|class

8.2.3通用库函数文件

库函数源程序除了遵照以上的源程序规范外,还应遵守下面的规定:

文件大小需简短。不将没有关联的函数放在一个源文件中。尽量使函数独立。以减小最后联结的目标码的长度。

除极特别情况外,不使用全局变量。

函数的输入参数,如果是指针时,使用const修饰符定义。

必须在相应的头文件中,定义函数的调用原型。以利于编译系统检查调用者的调用格式错误,减少编码的出错机会。

8.2.4变量定义

在函数代码中,变量的定义必须放在第一部分,同时给指针类型的变量赋空(NULL)。

8.2.5参数合法性检查

在使用应用传递的输入输出参数之前,必须对参数进行合法性检查,保证代码执行使用参数的安全性。比如,应用的一个输出参数地址为NULL,如果处理之前不检查参数的合法性,那么将导致一个内存错误;如果检查合法性,就不会造成代码执行时出现问题。

8.2.6执行处理

在处理代码开发中,必须注意以下的一系列的问题:

对应用传递的输入输出参数,禁止使用strcpy,strlen,strcat,strcmp等相应的函数操作输入输出参数,尽量使用strncpy,memcpy等含有处理长度参数的函数进行处理。

必须先分配系统资源,才能分配函数内部需要的资源;相反,必须首先释放函数内部分配的资源,再释放系统资源。

禁止出现两条等价的支路。

禁止GOTO语句。

用IF语句来强调只执行两组语句中的一组。禁止ELSE GOTO和ELSE RETURN。

用CASE实现多路分支。

避免从循环引出多个出口。

函数只有一个出口。

不使用条件赋值语句。

避免不必要的分支。

不要轻易用条件分支去替换逻辑表达式。

8.2.7返回值

对外接口API必须返回返回值给应用。

9错误和异常处理规范

错误分业务错误和系统错误两类。错误提示包含错误代码和提示信息两部分,其中错误代码长度固定为四个字符,提示信息长度不定,但最长不超过60个字符。

错误发生源作为提示信息的一部分。所有出错都要详细记录错误日志。

建议设立错误代码与提示信息的对照表,根据错误代码来查找相应的提示信息。

日终批处理过程中出错要记入LOG文件。

9.1出错类型定义约定

在整个系统软件产品的出错定义要一致;

统一模块层次的出错类型统一定义;

出错类型分为错误、警告、提示等三类信息,分别用E、W、I开头;错误代码统一用宏描述,并且放在一个头文件中;

出错代码的宏定义还要加注对这个代码的说明;

出错代码有相应的文档指明代码的定义规则。

例子:有ErrorDef.h中有如下定义:

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

//Error Code Macro Define

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

//Error Code

#define E_OK0x0//没有错误

#define E_NO_ENOUGH_MEMORY0x1001//内存不足

#define E_INVALID_HANDLE0x1002//无效的句柄

//Warning Code

#define W_CUT_RECV_DATA0x2001//裁剪接收数据

#define W_FIND_OLD_MESSAGE0x2002//发现老的消息

//Information Code

#define I_SEND_SUCCEED0x9001//发送成功

注意:出错类型的定义一定要统一,并且一定要注意编码问题。

9.2异常的捕获

在程序中会出现各种异常,如除0错误、内存错误都要处理。要有异常可能的都要

捕获。

9.3异常和错误的处理

每个函数独立处理内部的异常,对影响结果的异常通过返回值返回。对于在函数内部不能处理的异常,捕获后已另外的形式向调用者抛出,但是要在接口文档中详细写明。注意:处理异常一般有两种方法,一是通过将异常转化为另一个异常抛出,二是通过函数返回值返回。在本规范中,倾向于用第二种方法。

附录:C程序模版

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

源程序名称:软件著作权:系统名称:模块名称:功能说明:相关文档:作者:

审核:AB41Chec.c

xxx公司版权所有版本信息

本文件所在的系统或工程的名字本文件所在的功能模块名称

简要说明本程序的功能

相关详细设计文档号

(可选)

$Author$

$Revision$

$Date$

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

#include/***include文件**/

#include

#define MAX_LEN10

/*******************函数说明*************************************

函数名称:

功能:

入口参数说明:出口参数说明:返回码:

调用格式:

对环境引用:对环境影响:调用函数列表:被调函数列表:中文名称(可选的)

简述函数或过程的功能[参数1]-[说明…] [参数2]-[说明…] [参数1]-[说明…] [参数2]-[说明…] [返回码1]-[说明…] [返回码2]-[说明…] (可选的)

(可选的)

(可选的)

(可选的)

(可选的)

*****************************************************************/ int func1(int arg1,char*arg2)/*函数说明用现代风格*/

{/*扩号用列对齐方式*/ char buf[MAX_LEN];/*数组长度采用符号常量*/

}

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语言编程规范

编码规范 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语言程序设计》课程标准 课程编码:03012208 课程模块:专业必修课 学时:90 课程类型:B类(理论+实践) 适用专业:计算机网络专业 1. 概述 C语言是一种结构化语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护。C语言的表现能力和处理能力极强。它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。它还可以直接访问内存的物理地址,进行位(bit)一级的操作。由于C语言实现了对硬件的编程操作,因此C语言集高级语言和低级语言的功能于一体。既可用于系统软件的开发,也适合于应用软件的开发。 本课程旨在使学生掌握程序设计的基本方法及思维,形成程序设计基本思想,掌握程序调试的基本方法,使学生初步具备程序设计能力,为学生进一步学习其他专业课程和今后从事网络技术工作打下坚实的基础。 课程的性质 《C语言程序设计》是一门专业必修课,是学习其它工科课程的基础。掌握程序设计的前提是掌握程序设计语言,C语言以其灵活性和实用性受到了广大计算机应用人员的喜爱。一旦掌握了C语言,就可以较为轻松地学习后续的Java程序设计、数据库技术等程序设计语言。本课程以程序设计思想为主线,介绍C语言的基本概念和程序设计的思想和方法,培养学生运用C语言解决实际问题的能力。 前导课程:计算机文化基础等。 后继课程:Java程序设计、数据库技术、信息安全技术、网络操作系统等。 课程设计理念 通过对多家IT企业的走访,我们了解到自学能力、动手能力、团队协作能力是现代企业对人才的共同要求。因而我们也把培养具有这些能力的学生作为我们的课程目标,把对这些能力的培养融入到平常的授课过程中。对以计算机网络、汽车电子等专业为代表的学生,主要注重项目分析,流程图设计以及编程技巧和方法的培养,为进一步培养软件项目综合开发和应用能力作准备。 1、基于工作过程,以职业能力培养为重点,与行业企业合作进行的课程开发与设计。 在课程的讲授过程中,采用任务驱动的模式,以案例教学为主。在学生掌握了相应知识点后,再提出新的问题,要求学生通过修改已有的代码加以解决。在修改代码的过程中,既培养了学生的自学能力,又锻炼了学生的动手能力。

C语言软件编写规范

C语言软件编写规范 以下是为大家整理的c语言软件编写规范的相关范文,本文关键词为语言,软件,编写,规范,北京,森馥,科技,股份有限公司,前言,您可以从右上方搜索框检索更多相关文章,如果您觉得有用,请继续关注我们并推荐给您的好友,您可以在教育文库中查看更多范文。 北京森馥科技股份有限公司 前言: 一个好的程序编写规范是编写高质量程序的保证。清晰、规范的源程序不仅仅是方便阅读,更重要的是能够便于检查错误,提高调试

效率,从而最终保证软件的质量和可维护性。 说明: 本规范适用于公司内使用c语言编码的所有软件。本规范自发布之日起生效,以后新编写的和修改的代码应遵守本规范。 注:使用固件和操作系统源代码应保留其代码风格 1 北京森馥科技股份有限公司 目录 1.排版与格式................................................................................................................. ....................................32.标识符命名与定义................................................................................................................. ........................43.注释书写规范................................................................................................................. .. (6) 2 北京森馥科技股份有限公司 1.排版与格式 规则1:程序块采用缩进风格编写,每级缩进为4个空格。 程序块采用缩进风格编写,每级缩进为4个空格,不使用TAb键,

软件开发代码规范(C语言)

软件开发代码规范(仅供内部使用) 拟制: 审核: 核准: 签发: 文档版本:V0.11日期: 日期: 日期: 日期: 2011-5-11

目录 第一章原则 (4) 第二章排版 (5) 2.1 空行 (5) 2.2 代码行 (6) 2.3 代码行内的空格 (6) 2.4 对齐缩进 (7) 2.5 长行拆分 (8) 第三章注释 (10) 3.1 通用规则 (10) 3.2 文件注释 (10) 3.3 函数注释 (11) 3.4 数据注释 (12) 3.5 代码注释 (12) 第四章命名 (15) 4.1 通用命名规则 (15) 4.2 文件命名 (15) 4.3 类型命名 (15) 4.4 变量命名 (16) 4.5 常量命名 (17) 4.6 函数命名 (17) 4.7 枚举命名 (17) 4.8 宏命名 (18)

第五章杂项 (19)

文件修改记录

第一章原则 本文档的目的是提供一个公共的编码规范。 这个规范详细阐述在编码时要怎样写、不要怎样写,旨在提高代码的可读性、可维护性, 使代码易于管理,使所有人可以集中精力去实现内容,而非处理各种复杂的表现形式。 使代码易于管理的方法之一是增强代码一致性,让别人可以读懂你的代码是很重要的,保持统一编程风格意味着可以轻松根据模式匹配”规则推断各种符号的含义。创建通用的、 必需的习惯用语和模式可以使代码更加容易理解。虽然在某些情况下改变一些编程风格可能 会是好的选择,但我们还是应该遵循一致性原则,尽量不这样去做。 关键在于保持一致。

第二章排版 2.1 空行 【规则2-1-1】在每个函数、结构体、枚举定义结束之后都要加空行。 【规则2-1-2】在一个函数体内,逻辑密切相关的语句之间不加空行,其它地方应加空行分隔。 【规则2-1-3】相对独立的程序块之间、变量说明之后必须加空行。 不规范代码规范代码

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

华为CC语言编程规范

百度文库- 让每个人平等地提升自我 目录 1 排版 (2) 4 可读性 (11) 6 函数、过程 (13) 7 可测性 (14)

1 排版 11-1:程序块要采用缩进风格编写,缩进的空格数为4个。 说明:对于由开发工具自动生成的代码可以有不一致。 11-2:相对独立的程序块之间、变量说明之后必须加空行。 示例:如下例子不符合规范。 if (!valid_ni(ni)) { ... epssn_index; repssn_ni = ssn_data[index].ni; 应如下书写 if (!valid_ni(ni)) { ... epssn_index; repssn_ni = ssn_data[index].ni; 11-3:较长的语句(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。 示例: = NO7_TO_STAT_PERM_COUNT_LEN + STAT_SIZE_PER_FRAM * sizeof( _UL ); act_task_table[frame_id * STAT_TASK_CHECK_NUMBER + index].occupied = stat_poi[index].occupied; act_task_table[taskno].duration_true_or_false = SYS_get_sccp_statistic_state( stat_item );

report_or_not_flag = ((taskno < MAX_ACT_TASK_NUMBER) && (n7stat_stat_item_valid (stat_item)) && (act_task_table[taskno].result_data != 0)); 11-4:循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分,长表达式要在低优先级操作符处划分新行,操作符放在新行之首。 示例: if ((taskno < max_act_task_number) && (n7stat_stat_item_valid (stat_item))) { ... ord_length) && (j < ; i++, j++) { ... . tat_object), sizeof (_STAT_OBJECT)); n7stat_flash_act_duration( stat_item, frame_id *STAT_TASK_CHECK_NUMBER + index, stat_object ); 11-6:不允许把多个短语句写在一行中,即一行只写一条语句。 示例:如下例子不符合规范。 = 0; = 0; 应如下书写 = 0; = 0; 11-7:if、for、do、while、case、switch、default等语句自占一行,且if、for、do、while等语句的执行语句部分无论多少都要加括号{}。

C语言编程规范V

C语言编程规范-V1.0 一、文件命名 1.文件主名以字母开头,由字母、数字或下划线组成 2.采用下列文件名后缀: .c(C程序文件) .h(头文件) .o(可重载目标文件) .a(静态库) .sl(动态库) 注:与特定编译器缺省后缀约定冲突的,遵循编译器的缺省后缀约定 3.编辑工具make的控制文件取名makefile 4.自述文件取名readme 二、源程序文件 1.源程序文件段落依照下列顺序: 序言 系统头文件引用(include) 用户头文件引用(include) 全局常量宏定义(define) 全局函数宏定义(define) 全局类型定义(typedef) 全局枚举类型定义(enums) 全局变量说明(extern) 全局变量说明(non-static) 全局变量说明(static) 函数(通常从最高层开始,按层次横向排列。如果定义较多的独立的公用函数,可以考虑按字母顺序排列) 2.序言内容应包括版权声明、文件名、内容描述、版本历史,格式如下:

/* * Copyright 2014,XXX Co., Ltd. All right reserved. * This program prints out messages from a queue. * Edit History: * 2014/11/28 - Created by GaoXuefeng. * 2014/11/29 - Modified by ChenChen to print output in the new form. */ 3.段落之间用空行分隔 4.文件长度尽可能在1000行之内 5.每行长度尽可能不要超过79列 三、头文件 1.用户头文件名避免使用系统头文件名 2.按照功能组织头文件,例如独立的子系统应单独一个头文件 3.与机器相关的说明组成单独头文件 4.多个源文件引用的说明放入头文件中 5.头文件不要嵌套 6.说明函数或外部变量的头文件应在定义该函数或变量的文件中引用 7.不要在头文件中定义变量 8.内部使用的宏、枚举、结构定义不应放入头文件中 9.内部使用的函数(相当于类的私有方法)声明不应放在头文件中 10.只引用需要的头文件 11.每个头文件采用下面的形式避免被重复引用: #ifndef EXAMPLE_H #define EXAMPLE_H ...... /* body of example.h file */

华为技术有限公司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语言安全编码规范 篇一:c语言编码规范 篇二:c语言代码规范 c语言代码规范 1.基本要求 1.1程序结构清析,简单易懂,单个函数的程序行数不得超过100行。 1.2打算干什么,要简单,直接了当,代码精简,避免垃圾程序。 1.3尽量使用标准库函数和公共函数。 1.4不要随意定义全局变量,尽量使用局部变量。 1.5使用括号以避免二义性。 2.可读性要求 2.1可读性第一,效率第二。 2.2保持注释与代码完全一致。 2.3每个源程序文件,都有文件头说明,说明规格见规范。 2.4每个函数,都有函数头说明,说明规格见规范。

2.5主要变量(结构、联合、类或对象)定义或引用时,注释能反映其含义。 2.7常量定义(deFine)有相应说明。 2.8处理过程的每个阶段都有相关注释说明。 2.9在典型算法前都有注释。 2.10利用缩进来显示程序的逻辑结构,缩进量一致并以tab键为单位,定义tab为6个字节。 2.11循环、分支层次不要超过五层。 2.12注释可以与语句在同一行,也可以在上行。 2.13空行和空白字符也是一种特殊注释。 2.14一目了然的语句不加注释。 2.15注释的作用范围可以为:定义、引用、条件分支以及一段代码。 2.16注释行数(不包括程序头和函数头说明部份)应占总行数的1/5到1/3。 3.结构化要求 3.1禁止出现两条等价的支路。 3.2禁止goto语句。 3.3用iF语句来强调只执行两组语句中的一组。禁止elsegoto和elseRetuRn。 3.4用case实现多路分支。 3.5避免从循环引出多个出口。

3.6函数只有一个出口。 3.7不使用条件赋值语句。 3.8避免不必要的分支。 3.9不要轻易用条件分支去替换逻辑表达式。 4.正确性与容错性要求 4.1程序首先是正确,其次是优美 4.2无法证明你的程序没有错误,因此在编写完一段程序后,应先回头检查。 4.3改一个错误时可能产生新的错误,因此在修改前首先考虑对其它程序的影响。 4.4所有变量在调用前必须被初始化。 4.5对所有的用户输入,必须进行合法性检查。 4.6不要比较浮点数的相等, 如:10.0*0.1==1.0,不可靠 4.7程序与环境或状态发生关系时,必须主动去处理发生的意外事件,如文件能否逻辑锁定、打印机是否联机等。 4.8单元测试也是编程的一部份,提交联调测试的程序必须通过单元测试。 5.可重用性要求 5.1重复使用的完成相对独立功能的算法或代码应抽象为公共控件或类。 5.2公共控件或类应考虑oo思想,减少外界联系,考虑

编码规范(C语言)

编码规范(C语言)

1.引言 1.1简介 所有的程序开发手册都包含了各种规则。一些习惯自由程序的人(例如C程序员)可能对这些规则很不适应,但是在多个开发人员共同协作的情况下,这些规则是必需的。这不仅仅是为了开发效率,而且也为了测试和后期维护。 良好的编码习惯有助于标准化程序的结构和编码风格,使源代码对于自己和别人都易读和易懂。在开发周期中越早使用恰当的编码规定,将会最大程度的提高项目的生产率。良好的编码习惯除了代码格式,详细的注释外,还应该包括使用有助于提高程序效率的编码方式。 规范的开发有助于提高源码的可读性,可维护性,对于提高项目的整体效率更是不可缺少的(尤其是团队开发)。 1.2目的 本文是一套面向cprogrammer 和cdeveloper 进行开发所应遵循的开发规范。按照此规范来开发C 程序可带来以下益处: 码的编写保持一致性; 高代码的可读性和可维护性; 团队开发一个项目的情况下,程序员之间可代码共享; 于代码的回顾 2.命名规范 2.1文件命名规范 件名必须由前缀和后缀组成,最好采用长文件命名格式; 件名必须用英文字母表达,禁止使用中文; 于几个单词组合表达的文件名,每个单词必须小写,单词之间用下划线“_”分割; 文件后缀格式为.c,头文件后缀格式为:.h。 例:trade_rebuild.c,trade_rebuild.h 2.2 变量命名规范 命名必须具有一定的实际意义,形式为xAbcFgh。x 由变量类型确定,Abc、Fgh 表示连续意义字符串,如果连续意义字符串仅两个,可都大写,如OK。

表2-1 变量类型缩写表 环变量)。变量应为名词或名词短语。 2.3常量命名和宏定义规范 量和宏定义必须具有一定的实际意义; 量和宏定义在#include 和函数定义之间; 量和宏定义必须全部以大写字母来撰写,中间可根据意义的连续性用下划线连接,每一条定义的右侧必须有一简单的注释,说明其作用。 例如: #define REPO_PRICE 1000000/*回购价格*/ 2.4函数命名规范 函数名用大写字母开头的单词组合而成,建议使用祈使动词或动词短语。例如: voidImportantPoint(void);

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