C语言的规范(非常经典)

合集下载

C语言代码规范

C语言代码规范

C语言代码规范C语言是一种广泛应用于编程领域的高级编程语言,具有跨平台、效率高、灵活性强等优点。

编写规范合乎标准的C语言代码有助于提高代码的可读性、可维护性和可移植性。

本文将介绍一些常用的C语言代码规范,以帮助开发者编写高质量的C语言程序。

一、代码格式1. 缩进:使用四个空格进行缩进,不要使用制表符。

这样可以保证在不同编辑器或显示器上显示的代码缩进一致。

2. 行长度限制:每行代码应尽量保持在80个字符以内,超过限制的代码可以进行适当换行。

换行时要注意保持代码的清晰可读性,一般可以采用缩进来表达代码的层次关系。

3. 大括号:大括号的位置应该和相关语句对齐,且起始的大括号应该放在语句所在行的末尾,而不是单独另起一行。

4. 空格和空行:在适当的情况下使用空格和空行可以提高代码的可读性。

例如,在运算符和操作数之间使用空格,不同的代码块之间使用空行进行分割等。

二、命名规范1. 变量名:使用有意义的变量名,尽量避免使用单个字符或简单的缩写表示变量。

变量名应该忠实地反映其所代表的含义。

2. 函数名:函数名应使用动词和名词的组合,具体描述函数的功能。

函数名应该清晰地表达其所完成的操作或所返回的结果。

3. 常量名:常量名使用全大写字母,并使用下划线进行分隔。

例如,MAX_LENGTH。

4. 类型名:类型名使用首字母大写的驼峰命名法,例如,StudentInfo。

5. 宏定义名:宏定义名使用全大写字母,并使用下划线进行分隔。

例如,PI。

三、注释规范1. 单行注释:使用"//"进行单行注释,注释符号后面应该留一个空格。

注释应该清晰明了,解释代码的用途或特殊处理等。

2. 多行注释:使用"/*"和"*/"进行多行注释。

多行注释通常用于解释一整块代码的功能或原理等。

3. 函数注释:在每个函数定义的上方加上函数注释,注释中应该包含函数的功能描述、输入参数的说明、返回值的含义以及可能抛出的异常等信息。

c语言编程的书写规则

c语言编程的书写规则

c语言编程的书写规则C语言编程的书写规则主要遵循以下规范:1. 缩进和空格:缩进和空格的使用可以使代码更易读。

通常,运算符两侧、逗号之后、控制语句(如if、for、while等)前后应添加空格。

在函数和括号的开头和结尾,通常应有空行。

2. 命名规则:变量和函数名应简洁且有意义。

通常,变量名和函数名以小写字母开头,后续单词的首字母大写,如 `myVariable`。

3. 注释:注释应简洁明了,解释代码的作用或目的,而不是解释代码是如何工作的。

注释应放在代码的上方或旁边,与代码保持一定距离。

4. 函数:函数应该尽可能短小,只做一件事情。

函数应具有描述性的名称,参数列表应清晰,并应包含返回类型。

5. 大括号:在C语言中,大括号 `{}` 用于定义代码块。

每一个独立的语句块都应该使用大括号。

6. 控制结构:控制结构(如if-else、for、while等)应该清晰明了,控制语句应只包含必要的逻辑。

7. 类型定义:类型定义应清晰明了,如果有必要,可以使用typedef来定义新的类型名称。

8. 预处理器指令:预处理器指令(如include、define等)应放在源文件的顶部。

9. 避免魔法数字和字符串:魔法数字和字符串(硬编码的值)会使代码难以理解和维护。

如果需要在代码中使用特定的值,应将其定义为常量或宏。

10. 避免全局变量:全局变量会使代码难以理解和维护,并可能导致意外的副作用。

尽可能使用局部变量。

11. 错误处理:在可能失败的操作后,应检查错误并相应地处理它们。

以上只是一些基本的C语言编程规则,实际编写代码时可能还需要考虑更多因素,如代码的可读性、可维护性、性能等。

C语言语法规则

C语言语法规则

C语言基本语法规则C 的令牌(Tokens)C 程序由各种令牌组成,令牌可以是关键字、标识符、常量、字符串值,或者是一个符号。

例如,下面的 C 语句包括五个令牌:这五个令牌分别是:分号;在 C 程序中,分号是语句结束符。

也就是说,每个语句必须以分号结束。

它表明一个逻辑实体的结束。

例如,下面是两个不同的语句:注释注释就像是 C 程序中的帮助文本,它们会被编译器忽略。

它们以 /* 开始,以字符 */ 终止,如下所示:不能在注释内嵌套注释,注释也不能出现在字符串或字符值中。

标识符C 标识符是用来标识变量、函数,或任何其他用户自定义项目的名称。

一个标识符以字母 A-Z 或 a-z 或下划线 _ 开始,后跟零个或多个字母、下划线和数字(0-9)。

C 标识符内不允许出现标点字符,比如 @、$ 和 %。

C 是区分大小写的编程语言。

因此,在 C 中,Manpower 和 manpower 是两个不同的标识符。

下面列出几个有效的标识符:C语言中标识符的命名规范:1.标识符由字母、数字、下划线组成,并且首字母不能是数字。

2.不能把C的关键字作为用户的标识符,例如:if、for、while等。

(注:标识符不能和C语言的关键字相同,也不能和用户自定义的函数或C语言库函数同名)3.标识符长度是由机器上的编译系统决定的,一般的限制为8字符,(注:8字符长度限制是C89标准,C99标准已经扩充长度,其实大部分工业标准都更长)。

4.标识符对大小写敏感,即严格区分大小写。

一般对变量名用小写,符号常量命名用大写。

(注:C语言中字母是区分大小写的,因此score、Score、SCORE 分别代表三个不同的标识符)5.标识符命名应做到"见名知意",例如,长度(外语:length),求和、总计(外语:sum),圆周率(外语:pi)关键字下表列出了 C 中的保留字。

这些保留字不能作为常量名、变量名或其他标识符名称。

C 中的空格只包含空格的行,被称为空白行,可能带有注释,C 编译器会完全忽略它。

标准C语言规范

标准C语言规范
* 编程人员 : 宋毅红
* 编程时间 : 94.9.29
* 修改时间 :
*/
#include <curses.h>
#include <signal.h>
#include <fcntl.h>
#include "Tr_mac.h"
#include "Tr_str.h"
return(Err);
}
}
/******* added by yang yijun 95.7.25 *****/
else
{
_disp_nm(bgdc.cur); /* yyj 94.11.17.*/
return(Err);
}
}
return(Ok);
}
void_disp_nm( _sName)
char *_sName;
p------pointer
字符串数组也使用p标志
静态变量名前用s标志
数组变量名前用stru标志
全局变量使用前缀g_标志
如:dBalance,fInterest,pName,sCustomer,struPersonWang,g_iOperNo
3.书写规范
⑴对齐原则
同一层次的语句必须左对齐。“{”和“}”必须独占一行。
⑵缩进原则
不同层次的语句必须遵从缩进原则,一般缩进四个字符为宜,TAB值设为4。
Case后的语句(简短注释语句除外)应另起一行,且须与“:”相接。
⑶分行书写原则
当行超过屏幕上的行时,应分行书写。
⑷注释符要求
单行注释符使用“//”,多行注释符使用“/*……*/”,注释符必须遵从前面3条原则,

C语言命名规范10条

C语言命名规范10条

C语言命名规范10条
1)标识符的命名要清晰、明了,有明确含义,同时使用完整的单词或大家基本
可以理解的缩写,避免使人产生误解。

程序中的英文单词一般不会太复杂,用词应当准确。

例如不要把currentValue写成nowValue。

2)不允许使用汉语拼音命名,更不要使用汉语,必须使用英文来命名标识符。

尽量避免名字中出现数字编号,如value1,value2等,除非逻辑上的确需要编号。

3)函数名、变量名如果有多个单词组成,第一个单词首字母小写,从第二个单
词起首字母大写。

如:printName(), oldName等
4)在C 程序中,常量定义以大写字母K开头,字母全部使用大写,如:const int
KSIZE = 100。

5)代码缩进使用4个空格,不推荐使用TAB键
6)版权和版本的声明位于文件的开头;函数头部应进行注释,列出:函数的功
能、输入参数、输出参数、返回值等。

关键代码注释位于被注释代码上方,且用空行与其他代码分割开,如:
文件头注释:
函数注释:
关键代码注释:
7) 静态变量加前缀s_,如:static int s_count = 0;
8) 尽量避免应用全局变量,如果有特殊情况必须定义的话,全局变量以小写g_
开头,如:int g_count = 0;
9) 结构体的名字开头字母要大写。

如:
struct Student
{
};
10)
枚举和它的成员的定义,应该采用有意义的命名方式,避免出现歧义;枚举
变量的命名以T开头,枚举成员以E开头。

C语言编程规范与风格

C语言编程规范与风格

C语言编程规范与风格C语言是一种广泛使用的编程语言,它的编程规范与风格对于保证代码的可读性、可维护性和可扩展性至关重要。

本文将介绍一些关键的C语言编程规范与风格,并提供一些实践建议。

1. 代码缩进代码缩进是C语言中非常重要的一个方面,它可以使代码结构清晰,易于阅读。

推荐使用4个空格或者制表符来进行代码缩进。

2. 命名规范为了让代码更易读和理解,命名规范应具有一定的规则性和描述性。

变量、函数和常量的命名应具有一定的规范,比如使用驼峰命名法(camelCase)或者下划线法(underscore_case)。

3. 注释注释是代码中的重要组成部分,可以使代码更易读和理解。

应该在代码中适当地使用注释,解释代码的功能、用途和注意事项。

注释应该清晰、简洁且易于理解。

4. 函数设计函数是C语言中重要的组织单元,应该遵循一定的设计原则来编写函数。

函数应该具有良好的命名,功能单一且高内聚。

函数的参数应该明确且合理,避免过多的参数传递。

函数的返回值应该清晰地说明其含义。

5. 条件语句和循环语句条件语句和循环语句是C语言中常用的流程控制语句,应该遵循一定的格式和风格。

条件语句的括号应该与关键字紧挨着,条件表达式应该适当地加上括号,以增加代码的可读性。

循环语句的条件表达式应该明确且易于理解,循环体应该具有合适的缩进。

6. 数据类型和变量声明在C语言中,数据类型和变量声明是非常重要的。

应该根据需要选择合适的数据类型,尽量避免使用过长或过短的数据类型。

变量声明应该在函数开头或者合适的位置进行,尽量避免使用全局变量。

7. 引入头文件C语言中的头文件对代码的模块化和可维护性非常重要。

在代码中应该适当引入所需要的头文件,避免使用过多的全局引入。

头文件应该具有合适的宏定义和条件编译,以提高代码的可复用性。

8. 错误处理在编程过程中,错误处理是非常重要的一部分。

应该养成检查错误和处理错误的习惯,合理运用条件语句和错误码,以便更好地调试和修复代码。

C语言编程规范标准

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. 标识符的命名要清晰、明了,有明确含义,同时使用完整的单词或大家基本可以理解的缩写,避免使人产生误解。

C语言程序设计规范

C语言程序设计规范

C语言程序设计规范一、注释规范在C语言程序中,注释是非常重要的。

注释可以帮助开发人员理解代码,更好的维护、修改程序。

因此,在编写C语言程序时,注释必须写得清晰明了。

1. 注释格式注释应当采用如下的格式:// 这是单行注释/** 这是多行注释*/2. 注释内容注释的内容应当包括:- 代码的作用- 变量名和函数名的含义- 重要的数据结构3. 注释位置注释应当在代码上方或者在代码旁边进行添加,这可以使得程序更加易读且易于理解。

二、命名规范命名是程序开发中的重要部分。

一个好的命名可以提高代码的可读性和可维护性。

C语言的命名规范应当遵循以下原则:1. 变量名应当使用小写字母,不要使用下划线。

2. 函数名第一个单词应当使用动词,第二个单词应当使用名词。

3. 常量名应当使用大写字母和下划线,如MAX_COUNT。

4. 枚举类型应当使用大写字母,如:typedef enum {RED,GREEN,BLUE} Color;5. 结构体名应当采用驼峰命名法,如:typedef struct {char firstName[20];char lastName[20];} Person;6. 文件名应当使用小写字母和下划线,如my_program.c。

三、缩进规范缩进可以使代码更易于阅读和理解,因此在编写程序时一定要遵循缩进规范。

1. 使用4个空格缩进,而不是使用制表符或两个空格缩进。

2. 如果某一行代码过长,可以在适当的位置断开,如:int result = some_function(param1, param2, param3,param4, param5);3. 对于控制结构(if、while、for等),应当缩进一级,如:if (condition) {// some code}while (condition) {// some code}四、代码风格规范代码的风格对于程序的可读性有着非常重要的影响。

C语言的代码风格规范应当遵循以下原则:1. 大括号应该单独占据一行。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言的规范C语言的规范2007-11-03 08:20A.1 排版1-1:程序块要采用缩进风格编写,缩进的TAB键一个。

1-2:相对独立的程序块之间、变量说明之后必须加空行。

1-3:较长的语句(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。

1-4:循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分,长表达式要在低优先级操作符处划分新行,操作符放在新行之首。

1-5:若函数或过程中的参数较长,则要进行适当的划分。

1-6:不允许把多个短语句写在一行中,即一行只写一条语句。

1-7:if、while、for、default、do等语句自占一行。

1-8:对齐只使用TAB键,不使用空格键。

1-9:函数或过程的开始、结构的定义及循环、判断等语句中的代码都要采用缩进风格,ca se语句下的情况处理语句也要遵从语句缩进要求。

1- 10:程序块的分界符(如C/C++语言的大括号'{'和'}')应各独占一行并且位于同一列,同时与引用它们的语句左对齐。

在函数体的开始、类的定义、结构的定义、枚举的定义以及if、for、do、while0、switch、case语句中的程序都要采用如上的缩进方式。

1-11:在两个以上的关键字、变量、常量进行对等操作时,它们之间的操作符之前、之后或者前后要加空格;进行非对等操作时,如果是关系密切的立即操作符(如->),后不应加空格。

1-12: 程序结构清析,简单易懂,单个函数的程序行数不得超过100行。

A.2 注释2-1:一般情况下,源程序有效注释量必须在20%以上。

2-2:说明性文件(如头文件.h文件、.inc文件、.def文件、编译说明文件.cfg等)头部应进行注释,注释必须列出:版权说明、版本号、生成日期、作者、内容、功能、与其它文件的关系、修改日志等,头文件的注释中还应有函数功能简要说明。

2-3:源文件头部应进行注释,列出:版权说明、版本号、生成日期、作者、模块目的/功能、主要函数及其功能、修改日志等。

2-4:函数头部应进行注释,列出:函数的目的/功能、输入参数、输出参数、返回值、调用关系(函数、表)等。

2-5:边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性。

不再有用的注释要删除。

2-6:注释的内容要清楚、明了,含义准确,防止注释二义性。

2-7:避免在注释中使用缩写,特别是非常用缩写。

2-8:注释应与其描述的代码相近,对代码的注释应放在其上方或右方(对单条语句的注释)相邻位置,不可放在下面,如放于上方则需与其上面的代码用空行隔开。

2-9:对于所有有物理含义的变量、常量,如果其命名不是充分自注释的,在声明时都必须加以注释,说明其物理含义。

变量、常量、宏的注释应放在其上方相邻位置或右方。

2-10:数据结构声明(包括数组、结构、类、枚举等),如果其命名不是充分自注释的,必须加以注释。

对数据结构的注释应放在其上方相邻位置,不可放在下面;对结构中的每个域的注释放在此域的右方。

2-11:全局变量要有较详细的注释,包括对其功能、取值范围、哪些函数或过程存取它以及存取时注意事项等的说明。

2-12:注释与所描述内容进行同样的缩排。

2-13:将注释与其上面的代码用空行隔开。

2-14:对变量的定义和分支语句(条件分支、循环语句等)必须编写注释。

2-15:对于switch语句下的case语句,如果因为特殊情况需要处理完一个case后进入下一个case处理,必须在该case语句处理完、下一个case语句前加上明确的注释。

A.3 标识符命名3-1:标识符的命名要清晰、明了,有明确含义,同时使用完整的单词或大家基本可以理解的缩写,避免使人产生误解。

3-2:命名中若使用特殊约定或缩写,则要有注释说明。

3-3:自己特有的命名风格,要自始至终保持一致,不可来回变化。

3-4:对于变量命名,禁止取单个字符(如i、j、k...),建议除了要有具体含义外,还能表明其变量类型、数据类型等,但i、j、k作局部循环变量是允许的。

3-5:命名规范必须与所使用的系统风格保持一致,并在同一项目中统一,比如采用UNIX 的全小写加下划线的风格或大小写混排的方式,不要使用大小写与下划线混排的方式。

A.4 可读性4-1:注意运算符的优先级,并用括号明确表达式的操作顺序,避免使用默认优先级。

4-2:避免使用不易理解的数字,用有意义的标识来替代。

涉及物理状态或者含有物理意义的常量,不应直接使用数字,必须用有意义的枚举或宏来代替。

A.5 变量5-1:去掉没必要的公共变量。

5-2:仔细定义并明确公共变量的含义、作用、取值范围及公共变量间的关系。

5-3:明确公共变量与操作此公共变量的函数或过程的关系,如访问、修改及创建等。

5-4:当向公共变量传递数据时,要十分小心,防止赋与不合理的值或越界等现象发生。

5-5:防止局部变量与公共变量同名。

5-6:严禁使用未经初始化的变量作为右值。

A.6 函数、过程6-1:对所调用函数的错误返回码要仔细、全面地处理。

6-2:明确函数功能,精确(而不是近似)地实现函数设计。

6-3:编写可重入函数时,应注意局部变量的使用(如编写C/C++语言的可重入函数时,应使用auto即缺省态局部变量或寄存器变量)。

6-4:编写可重入函数时,若使用全局变量,则应通过关中断、信号量(即P、V操作)等手段对其加以保护。

A.7 可测性7-1:在同一项目组或产品组内,要有一套统一的为集成测试与系统联调准备的调测开关及相应打印函数,并且要有详细的说明。

7-2:在同一项目组或产品组内,调测打印出的信息串的格式要有统一的形式。

信息串中至少要有所在模块名(或源文件名)及行号。

7-3:编程的同时要为单元测试选择恰当的测试点,并仔细构造测试代码、测试用例,同时给出明确的注释说明。

测试代码部分应作为(模块中的)一个子模块,以方便测试代码在模块中的安装与拆卸(通过调测开关)。

7-4:在进行集成测试/系统联调之前,要构造好测试环境、测试项目及测试用例,同时仔细分析并优化测试用例,以提高测试效率。

7-5:使用断言来发现软件问题,提高代码可测性。

7-6:用断言来检查程序正常运行时不应发生但在调测时有可能发生的非法情况。

7-7:不能用断言来检查最终产品肯定会出现且必须处理的错误情况。

7-8:对较复杂的断言加上明确的注释。

7-9:用断言确认函数的参数。

7-10:用断言保证没有定义的特性或功能不被使用。

7-11:用断言对程序开发环境(OS/Compiler/Hardware)的假设进行检查。

7-12:正式软件产品中应把断言及其它调测代码去掉(即把有关的调测开关关掉)。

7-13:在软件系统中设置与取消有关测试手段,不能对软件实现的功能等产生影响。

7-14:用调测开关来切换软件的DEBUG版和正式版,而不要同时存在正式版本和DEBUG 版本的不同源文件,以减少维护的难度。

7-15:软件的DEBUG版本和发行版本应该统一维护,不允许分家,并且要时刻注意保证两个版本在实现功能上的一致性。

A.8 程序效率8-1:编程时要经常注意代码的效率。

8-2:在保证软件系统的正确性、稳定性、可读性及可测性的前提下,提高代码效率。

8-3:局部效率应为全局效率服务,不能因为提高局部效率而对全局效率造成影响。

8-4:通过对系统数据结构的划分与组织的改进,以及对程序算法的优化来提高空间效率。

8-5:循环体内工作量最小化。

A.9 质量保证9-1:在软件设计过程中构筑软件质量。

9-2:代码质量保证优先原则9-3:只引用属于自己的存贮空间。

9-4:防止引用已经释放的内存空间。

9-5:过程/函数中分配的内存,在过程/函数退出之前要释放。

9-6:过程/函数中申请的(为打开文件而使用的)文件句柄,在过程/函数退出之前要关闭。

9-7:防止内存操作越界。

9-8:认真处理程序所能遇到的各种出错情况。

9-9:系统运行之初,要初始化有关变量及运行环境,防止未经初始化的变量被引用。

9-10:系统运行之初,要对加载到系统中的数据进行一致性检查。

9-11:严禁随意更改其它模块或系统的有关设置和配置。

9-12:不能随意改变与其它模块的接口。

9-13:充分了解系统的接口之后,再使用系统提供的功能。

9-14:编程时,要防止差1错误。

9-15:要时刻注意易混淆的操作符。

当编完程序后,应从头至尾检查一遍这些操作符,以防止拼写错误。

9-16:有可能的话,if语句尽量加上else分支,对没有else分支的语句要小心对待;switc h语句必须有default分支。

9-17:禁止GOTO语句。

9-18:单元测试也是编程的一部份,提交联调测试的程序必须通过单元测试。

A.10 代码编辑、编译、审查10-1:打开编译器的所有告警开关对程序进行编译。

10-2:在产品软件(项目组)中,要统一编译开关选项。

10-3:通过代码走读及审查方式对代码进行检查。

A.11 代码测试、维护11-1:单元测试要求至少达到语句覆盖。

11-2:单元测试开始要跟踪每一条语句,并观察数据流及变量的变化。

11-3:清理、整理或优化后的代码要经过审查及测试。

11-4:代码版本升级要经过严格测试。

11-5:使用工具软件对代码版本进行维护。

11-6:正式版本上软件的任何修改都应有详细的文档记录。

A.12 宏12-1:用宏定义表达式时,要使用完备的括号。

12-2:将宏所定义的多条表达式放在大括号中。

12-3:使用宏时,不允许参数发生变化。

相关文档
最新文档