C语言编程规范

合集下载

C语言代码编程规范

C语言代码编程规范

2.1 排版
• 2.1.1空格的使用:
在两个以上的关键字、变量、常量进行对等操作时,它 们之间的操作符之前、之后或者前后要加空格;进行非对等 操作时,如果是关系密切的立即操作符(如->),后不应 加空格. – 逗号、分号只在后面加空格 – 比较操作符, 赋值操作符,算术操作符,逻辑操作符,位 域操作符等双目操作符的前后加空格 – "!"、"~"、"++"、"--"、"&"(地址运算符)等单目操作符前 后不加空格 – “->”、“.”前后不加空格 – if、for、while、switch等与后面的括号间应加空格,使if 等关键字更为突出、明显。
说明:以免用不同的编辑器阅读程序时,因TAB键所设 置的空格数目不同而造成程序布局不整齐。
• 2.1.13 程序块的分界符(如大括号‘{‟和‘}‟)应各独 占一行并且位于同一列,同时与引用它们的语句左对 齐。 在函数体的开始、类的定义、结构的定义、枚举的定 义以及if、for、do、while、switch、case语句中的程 序都要采用如上的缩进方式。
word = (high << 8) | low if ((a | b) && (a & c)) if ((a | b)< (c & d))
(1) (2) (3)
由于: high << 8 | low = ( high << 8) | low a | b && a & c = (a | b) && (a & c) 所以(1)(2)虽然表意不清,但不会出错 由于:a | b < c & d = a | (b < c) & d ,所以(3)造成判断条件出错

c语言代码规范

c语言代码规范

c语言代码规范C语言是一种通用的编程语言,广泛应用于嵌入式系统、操作系统、驱动程序以及各种应用程序的开发中。

为了提高代码的可读性、可维护性和可移植性,制定一套严格的代码规范是非常必要的。

1. 缩进与空格:- 使用4个空格进行缩进,不要使用Tab键。

- 在运算符两侧以及逗号后加上一个空格。

2. 命名规范:- 变量、函数和类型的命名采用小驼峰命名法,例如myVariable。

- 全局变量以g_开头,静态变量以s_开头。

- 宏定义全部大写,并用下划线分隔单词。

3. 函数定义:- 函数名应该能够描述函数的功能。

- 函数名应该以动词开头,使用小驼峰命名法。

- 函数的参数列表应该明确指明参数的类型和名称。

4. 注释:- 在每个函数之前添加简要的注释,说明函数的功能、参数和返回值。

- 在复杂的代码块中添加必要的注释,解释代码的逻辑和目的。

5. 头文件:- 头文件应该包含必要的宏定义、类型定义和函数声明,不要包含具体的函数实现。

- 头文件应该有相应的宏定义来防止多次包含。

6. 文件结构:- 文件应该按照功能模块进行组织,每个功能模块放在一个独立的文件中。

- 文件中的代码应该按照逻辑顺序进行排列,函数之间使用空行进行分隔。

7. 魔法数值:- 不要直接在代码中出现魔法数值,应该使用常量或者宏来表示。

- 大多数情况下,常量应该在文件的头部定义,并加上相应的注释。

8. 错误处理:- 对于可能出现错误的函数调用,应该检查返回值并进行相应的错误处理。

- 错误处理可以是返回特定的错误码或者抛出异常,但应该保持一致。

9. 括号和空行:- 括号应该与控制语句在同一行,并在括号内留出空格。

- 在函数和控制语句之间应该使用适当的空行进行分隔,提高可读性。

10. 可移植性:- 不要使用与平台相关的特性或者语法。

- 使用标准的数据类型和函数接口,避免使用非标准扩展。

- 避免使用与编译器相关的优化选项。

以上是一些常用的C语言代码规范,可以根据具体的项目需求进行适当调整。

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语言编程规范与代码Review

C语言编程规范与代码Review

C语言编程规范与代码Review C语言是一门广泛使用的编程语言,为了保证程序的可读性、可维护性和可移植性,编程人员需要遵守一定的编程规范。

本文将介绍一些常见的C语言编程规范,并讨论代码Review的重要性和方法。

一、命名规范在C语言编程中,合适的命名规范能够使程序更易读懂。

以下是一些常见的命名规范建议:1. 变量命名应具有描述性,能够清晰表达其用途;2. 使用有意义的函数名,能够准确表达函数的功能;3. 使用驼峰命名法或下划线命名法,保持命名的一致性;4. 避免使用单字符作为变量名或函数名,除非其在特定情况下具有明确含义。

二、缩进与对齐缩进和对齐是保持代码结构清晰的重要手段。

在C语言编程中,以下规则需要注意:1. 使用适当的缩进来区分不同层次的代码块;2. 使用合适的空格或制表符对齐代码,使其更易读;3. 在函数定义和条件语句等代码块中,使用花括号将其包裹起来,保持结构的清晰性。

三、注释规范良好的注释能够提供代码的解释和说明,使他人更容易理解你的代码。

以下是一些注释规范的建议:1. 在关键代码处添加注释,解释其功能和作用;2. 注释应具有简洁明了的语言,避免使用复杂的技术术语;3. 避免无意义的注释,注释应与代码相辅相成;4. 在函数和文件的开头,提供一份概览性的注释,说明其用途和使用方法。

四、错误处理良好的错误处理能够提高程序的稳定性和可靠性。

以下是一些错误处理的原则:1. 检查输入参数的合法性,防止潜在的错误发生;2. 避免使用魔术数值,使用宏定义或常量来表示特定的含义;3. 使用合适的异常处理机制,如返回错误码或抛出异常。

五、代码Review的重要性代码Review是一种通过检查、审查和评估代码来提高代码质量的过程。

代码Review的重要性体现在以下几个方面:1. 代码Review有助于发现和纠正潜在的代码错误和缺陷;2. 代码Review可以促进编程规范的遵守和统一性的维护;3. 通过代码Review,团队成员之间可以相互学习和交流,提高编程能力。

c 编程规范

c 编程规范

c 编程规范C 编程规范是用来规范 C 语言程序代码风格和编写规范的一系列准则。

遵循 C 编程规范可以提高代码的可读性、可维护性,减少错误和 bug 的发生。

以下是一些常见的 C 编程规范建议:1. 代码缩进:缩进应该使用相同数量的空格符或制表符,一般为 4 个空格或一个制表符。

缩进可以使代码结构更清晰,便于阅读。

2. 命名规范:变量、函数和常量的命名应该具有描述性,能够准确反映其用途和含义。

使用驼峰命名法或下划线命名法是常见的命名风格。

注意避免使用与 C 语言关键字相同的名称。

3. 注释规范:代码中应该包含必要的注释,用于解释代码的逻辑、实现细节和算法。

注释应该清晰明了,不要出现拼写错误或过多的冗余信息。

4. 函数长度:函数的长度应该适中,不要过长。

一般来说,一个函数应该只负责一个具体的功能,如果函数过长应该考虑分割成多个子函数。

5. 模块化设计:程序应该使用模块化的设计原则,将功能相似或相关的代码块组织成不同的模块或文件。

这样可以提高代码的可维护性和可重用性。

6. 错误处理:程序应该正确处理各种可能发生的错误和异常情况。

避免简单地使用错误代码或忽略错误,而是采取适当的错误处理措施,例如返回错误码或抛出异常。

7. 变量声明:变量应该在使用前先声明,并且尽量在被使用的代码块的起始处进行声明。

声明时应给予适当的初始值,以避免使用未初始化的变量。

8. 代码复用:避免重复的代码和冗余的逻辑。

可以通过编写可重用的函数、使用循环和条件语句等方式来提高代码的复用性和可读性。

9. 括号的使用:括号的使用是保证代码逻辑准确性的重要方式之一。

建议在 if、for、while、switch 等语句块的使用中,使用括号来明确代码块的范围,以避免出现逻辑错误。

10. 代码格式:代码应该有一致的格式,用以增加可读性。

应避免使用过长的代码行,一般建议每行代码长度不超过 80 个字符。

综上所述,C 编程规范是编写高质量、可维护代码的基本准则。

C语言编程规范与风格

C语言编程规范与风格

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

c语言编程规范

c语言编程规范

c语言编程规范C语言是一种广泛使用的编程语言,为了使代码可读性强,易于维护,编写出高质量的C语言代码,需要遵守一些编程规范。

1. 命名规范:- 使用有意义的变量和函数名称,避免使用缩写或不明确的名称。

- 变量和函数名称使用小驼峰式命名,以单词首字母小写,后续的单词首字母大写。

- 宏常量使用全部大写字母,并用下划线分隔单词。

2. 注释规范:- 使用注释来解释代码的逻辑、功能或者算法,提高代码的可读性。

- 在函数开头可以用注释来描述函数的输入、输出及功能。

- 注释应该与代码对齐,避免过长或过短,同时避免注释代码。

3. 缩进和空格规范:- 使用合适的缩进,增加代码的可读性。

- 使用4个空格作为一次缩进,而不是使用Tab字符。

- 在运算符和逗号后加一个空格,使代码更易读。

- 在大括号前加一个空格,与控制流语句对齐。

4. 代码结构规范:- 将相关功能的代码块放在一起,便于阅读和维护。

- 逻辑层次清晰,函数和类方法要尽量短小,每个函数的功能单一、复用性强。

- 相关联的变量放在一起声明,并按照类型顺序排序。

- 避免过长的行,推荐每行代码不超过80个字符。

5. 错误处理规范:- 在代码中检查错误并进行适当的处理,避免代码崩溃或者产生不可预料的结果。

- 使用错误码或者异常来处理错误,避免使用魔法数字。

- 使用合适的方式记录错误信息,方便调试和定位问题。

6. 动态内存管理规范:- 在使用动态内存分配时,需要及时释放分配的资源,避免内存泄漏。

- 需要注意避免指针悬挂和使用已经释放的内存。

7. 注重效率和安全性:- 在编写代码时注重代码的性能和效率,避免使用低效的算法。

- 在处理用户输入或者系统API调用时,需要对输入进行有效性检查,避免安全漏洞。

8. 一致性和规范性:- 保持代码的一致性和规范性,遵循编程规范,方便团队协作和代码维护。

- 遵循公司或项目的编码规范,保持团队的代码风格一致。

以上是C语言编程规范的一些基本要点,通过遵守这些规范,可以提高代码的可读性、可维护性和代码质量,使得代码更加规范和高效。

c语言编程规范

c语言编程规范

c语言编程规范C语言编程规范(1000字)C语言作为一种广泛使用的编程语言,编写程序时应遵循一定的编程规范。

编程规范可以提高代码的可读性和维护性,减少错误和调试时间。

以下是一些常用的C语言编程规范。

1. 缩进和格式化:使用四个空格进行缩进,并在语句的开头和结尾留出适当的空格。

用大括号将代码块括起来,并将其包含的代码缩进四个空格。

例如:```cif (condition) {statement;}```2. 注释:对重要的代码块和函数进行注释,以便于其他开发人员阅读和理解代码。

注释应明确和简洁,并用英文书写。

例如:```c/* This function calculates the sum of two numbers */int sum(int a, int b) {return a + b;}```3. 命名规范:变量、函数和常量的命名应具有描述性,并使用小写字母和下划线分隔单词。

使用有意义的名称可以提高代码的可读性。

例如:```cint count; // 变量名用名词void print_hello(); // 函数名用动词const int MAX_LENGTH = 100; // 常量名全大写```4. 常量和宏定义:使用宏定义来定义常量和预处理指令,以便于代码维护和修改。

使用大写字母和下划线命名常量,并用宏定义来定义它们。

例如:```c#define MAX_LENGTH 100```5. 函数长度和复杂度:函数的长度应该控制在一定范围内,以提高代码的可读性和维护性。

通常推荐一个函数不超过30行代码,并且应该尽量避免过于复杂的控制流程。

如果一个函数超过了这个范围,可以考虑将其拆分为多个较小的函数。

6. 变量的声明和初始化:变量应在使用之前进行声明,并在声明时进行初始化。

声明时可以将相同类型的变量放在一起,并且可以将变量的声明放在函数体的开头。

例如:```cint main() {int foo, bar; // 变量声明int i = 0; // 变量声明和初始化...}```7. 错误处理:在编写代码时应该考虑错误处理。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
memset(&sGl_sub, 0x00, sizeof(struct gl_sub_c)); memset(&s_com_item,0x00,sizeof(struct com_item_c)); ret = Com_item_Sel( g_pub_tx.reply, &s_com_item, "acc_hrt='%s'", s_gl_sub.acc_hrt ); pub_base_strpack( s_com_item.acc_no );
!pub_base_CompDblVal(s_gl_sub.cr_bal,0.00) && !pub_base_CompDblVal(s_gl_sub.ldd_bal,0.00) && !pub_base_CompDblVal(s_gl_sub.lcd_bal,0.00) && !pub_base_CompDblVal(s_gl_sub.rdd_amt,0.00) && !pub_base_CompDblVal(s_gl_sub.rcd_amt,0.00) ) {
/**********************************************************************
* 函数名: pub_base_CrtAcChkb
* 函数功能: 生成账号校验位
* 作者/时间: xxx 2003 年 12 月 16 日
*
* 参数:
* 输入: acno
7、 比较
1.用“==”比较变量和常数是否相等时,把常数写在左边,以防止把“==” 写成“=”。
例如: if(1==i) {
…….. } 2.需要用浮点数比较的时候,不要通过等号“==”和不等号“!=”来进行比 较。用公共函数 pub_base_CompDblVal 比较。
函 数 名: pub_base_CompDblVal
6、 变量在可见范围内必须初始化
变量使用前一定要初始化,刚分配的内存空间,或者是被你用过的内存空间 里面的数据是不固定的。为了避免这些无用的数据给自己的程序带来影响,要在 可见范围内进行初始化,一般情况下是置 0。
①整型、浮点型等在定义时直接赋初值, int lst_days=0; double amt=0.00;
16、pubdb_m
数据库特殊操作
17、rept、rpt
报表
18、sttl
资金
公共函数的命名规律:目录_功能
如:pub_base_ac_prdt()所在目录为 src/pubf/base
4、 头文件
为了减少执行程序的大小,不应包含不需要的头文件。
5、 变量定义
不要随意定义全局变量,尽量使用局部变量。 少用全局变量,如果是程序级全局变量,定义在主文件中,其他文件用 extern 显式声明。 文件级全局变量,一定要用 static 声明。 不要在程序中间声明变量。 例子详见 rpt255.cp、sp6787.c
定义函数体的左右大括号要各自独占一行。
注释与前面的执行语句之间空一行。
例子详见 rpt255.cp、sp6787.c
4、 Tab 键缩进
利用缩进来显示程序的逻辑结构,缩进量一致并以 Tab 键为单位,定义 Tab 键为 8 个空格. 在 UE 中修改 Tab 键宽度:高级—配置—编辑—将制表符宽度和缩进空格都 设为 8,这样代码用 UE 打开和用 vi 打开的视觉效果就一致了。 例子详见 rpt255.cp、sp6787.c
函数功能: 比较两个 DOUBLE 型数据大小
输入参数: amt1: 第一个 DOUBLE 型数据
amt2: 第二个 DOUBLE 型数据
输 出:

返回值:
0 相等
1 第一个大于第二个
-1 第一个小于第二个
例如:
ret = pub_base_CompDblVal(g_dd_mst.hold_amt, g_dd_parm.min_bal);
if( strlen(s_com_item.acc_no)==7 ) {
continue; }else{
ret=Gl_sub_Sel( g_pub_tx.reply , &sGl_sub , "br_no='%s' and cur_no='01' and acc_hrt like '%s%%' \
and (rdd_amt<>0 or rcd_amt<>0 or dr_bal<>0 or cr_bal<>0 or ldd_bal<>0 or lcd_bal<>0)" ,s_gl_sub.br_no, s_com_item.acc_no);
*
* 修改记录:
* 日 期: 2003 年 4 月 25 日
* 修 改 人: jane
* 修改内容: 此交易只允许上级机构查询下级机构,不能垮管理查询,
*
网点间不能互查,同一网点柜员间可以互查;
*************************************************/
函数头说明范例:
re也是一种特殊注释
在两个函数定义之间必须使用空行分开。
在函数定义中,用空行将代码按逻辑片断划分。 例如两个并列的判断语句之间就可以用空行来区分;变量的定义、变量的初 始化以及真正的处理语句之间就可以用空行来区分。
类别不一致的宏定义之间、全局变量之间、函数声明之间需要添加空行。
if( ret==100 ) {
continue; } } }
主要变量(结构、联合、类或对象)定义或引用时,注释能反映其含义。 常量定义(DEFINE)有相应说明。 处理过程的每个阶段都有相关注释说明。
在典型算法前都有注释。
例 3.
/**********************************************************************
g_pub_tx.tx_date 结构体变量:
struct ln_mst_hst_c sLn_mst_hst; 或 struct ln_mst_hst_c s_ln_mst_hst;
6、 程序结构清晰
程序结构清析,简单易懂,单个函数的程序行数不得超过 100 行。 一行只写一条语句,不允许把多个短语句写在一行中。 循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分;划分 的原则:整齐、美观、符合其他编码规范。 太长的程序分成若干个函数实现。 例子详见 rpt255.cp、sp6787.c
做好事要留名,注意备份 修改程序必须注明的要素:谁何时因何种原因修改那部分的代码,并且注意 备份修改之前的程序
2、 注释
尽量使用/* 注释内容 */ 格式,不要使用//格式 保持注释与代码完全一致。 对单行代码的注释可以在代码的上方和代码的后面; 对多行代码的注释应该放在代码的上方;
例 1. int head_flag = 0 ;/***added bye liuyue 20061129 在处理 6*科目的时候因为有的支行该类科 目都为 0,导致了打印时候不打表头的情况***/ 例 2. /* 打印下级科目有金额的上级科目 added by martin 20061104*/ if( !pub_base_CompDblVal(s_gl_sub.dr_bal,0.00) &&
学习参考别人的代码,不要有用的没用的完全照搬。
使用括号以避免二义性。 如果代码行中的运算符比较多,用括号确定表达式的操作顺序,避免使用默 认的优先级。
3、 尽量使用标准库函数和公共函数。
公共函数都是将常用的复杂功能封装测试好的函数,使用公共函数可以提高
编程效率与质量,减少出错率。
公共函数所在目录:src/pubf
要编号
匈牙利命名法是一名匈牙利程序员发明的,而且他在微软工作了多年。此命 名法就是通过微软的各种产品和文档传出来的。多数有经验的程序员,不管他们 用的是哪门儿语言,都或多或少在使用它
这种命名法的基本原则是: 变量名=属性+类型+对象描述 即一个变量名是由三部分信息组成,这样,程序员很容易理解变量的类型、 用途,而且便于记忆。
②指针赋为 NULL FILE *fp; fp=NULL; 要时刻注意指针的指向。
③结构体、数组、字符串用 memset 初始化,以免出现乱码 memset(&s_com_sys_parm, 0x00, sizeof(struct com_sys_parm_c)); memset(whlst, 0x0, sizeof(whlst)); 字符数组的定义和初始化要考虑‘\0’。
可读性要求
C 语言编程规范
1、 说明
每个源程序文件,都有文件头说明
每个函数,都有函数头说明
文件头说明范例:
/*************************************************
* 文 件 名: sp8302.c
* 功能描述: 柜员凭证查询
*
* 作 者: jane
* 完成日期: 2003 年 4 月 12 日
* 函 数 名: pub_base_GetDate
* 函数功能: 取得系统日期
* 作 者:
* 完成时间: 2003 年 12 月 16 日
*
* 参 数:
* 输 入:无
*
* 输 出:year: 年
*
month: 月
*
day: 日
*
* 返回值:无
*
* 修改历史:
*
********************************************************************/
相关文档
最新文档