C语言书写规范

合集下载

C语言格式书写指导规范

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 <filename.h>格式来引用标准库的头文件(编译器将从标准库目录开始搜索)。

【规则1-2-3】用#include “filename.h”格式来引用非标准库的头文件(编译器将从用户的工作目录开始搜索)。

【规则1-2-4】#include 后面使用TAB键控制排版。

【规则1-2-5】头文件中只存放“声明”而不存放“定义”【规则1-2-6】全局变量在头文件中声明,在.c文件中定义.h extern in tvalue; 声明。

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语言程序书写格式
引导语:为了增强C语言的可读性,正确的书写格式就显得十分重要。

以下是店铺分享给大家的'C语言程序书写格式,希望大家喜欢!
例.习分析下列程序的输出结果:
程序内容如下:
Multiply(x,
y)
int
x,y;return(x,Y);
}main (){
int a,
b;a=5}
B=6;printf(
”%d\n”,
multiply
(a,b)
);
)
读者一定会发现这个程序不容易读懂。

主要是书写上没有按照习惯的格式。

语言书写要求比较自由,一般只要一个单词不得分开写,单词之间用空白符分隔,而空白符包含空格符、水平制表符和换行符等。

因此,例1. 3中的程序书写上并没有词法错误。

执行该程序后,会在屏幕上显示出如下结果:
30
如果将该程序重新书写一遍,如下所示。

例1. 4〕将例1. 3程序重新书写如下:
rnultiply(x,y)
Int,x,y;
{
return(x * y);

main()
{
Int a,b;
printf ("%d\n" , multiply La, b)); 【C语言程序书写格式】。

C语言格式规范

C语言格式规范

#include <stdio.h> int main(void)
if (…) {
while (…) } return 0; } 写完 while 那一行后,按回车,此时光标不是停在与 while 左对齐的正下方,同样,我 们不需要按 Backspace,直接输入大括号即可,系统会自动对齐到与 while 左对齐的正下 方的。
C语言代码规范
什么叫规范?在C语言中不遵守编译器的规定,编译器在编译时就会报错,这个规定叫 作规则。但是有一种规定,它是一种人为的、约定成俗的,即使不按照那种规定也不会出 错,这种规定就叫作规范。
虽然我们不按照规范也不会出错,但是那样代码写得就会很乱。大家刚开始学习C语言的 时候,第一步不是说要把程序写正确,而是要写规范。因为如果你养成一种非常不好的写 代码的习惯,代码就会写得乱七八糟,等到将来工作面试的时候,这样的习惯可能会让你 失去机会。
代码如何写才能规范
那么代码如何写才能写得很规范呢?代码的规范化不是说看完本节内容后就能实现 的。它里面细节很多,而且需要不停地写代码练习,不停地领悟,慢慢地才能掌握的一种 编程习惯。所以大家不要想着一下子就能把代码规范化的所有知识全部掌握,也不要想着 一下子就能把代码写规范,这是不太可能的。
有很多知识,比如为什么代码要这样写,为什么不能那样写,作为一个初学者你是很 难弄明白的。有很多规范是为了在程序代码量根据软件工程的思想,我们的注释要占整个文档的20%以上。所以注释 要写得很详细,而且格式要写得很规范。
第二个好处是,把代码写规范则程序不容易出错。如果按照不规范的格式输入代码的 话,很容易出错。而代码写规范的话即使出错了查错也会很方便。格式虽然不会影响程序 的功能,但会影响可读性。程序的格式追求清晰、美观,是程序风格的重要构成元素。

标准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语言表达式的书写规则

c语言表达式的书写规则

c语言表达式的书写规则
在C语言中,表达式是由操作数和操作符组成的。

操作数可以是变量、常量或函数调用等,操作符用于指定操作的类型。

正确书写C语言表达式十分重要,因
为它直接影响程序的运行结果。

下面是C语言表达式的一些书写规则:
1. 使用合法的标识符和关键字作为操作数和变量。

合法的标识符由字母、数字
和下划线组成,首字母不能是数字。

2. 确保操作符和操作数之间有正确的空格分隔。

例如,将操作符放置在操作数
之间,例如`a + b`。

3. 使用圆括号来明确指定运算顺序。

圆括号用于分组操作数,例如`(a + b) * c`。

在复杂的表达式中,使用圆括号可以防止运算顺序混淆。

4. 遵循运算符的优先级和结合性规则。

C语言中,不同的运算符具有不同的优
先级和结合性。

在表达式中,先计算优先级高的运算符,再计算优先级低的运算符。

如果有多个相同优先级的运算符,那么根据结合性从左到右或从右到左进行计算。

5. 使用适当的赋值规则。

在C语言中,使用单个等号(=)进行赋值操作。

例如,`x = 5`。

同时,也可以使用其他赋值运算符进行简化赋值操作,例如`x += 5`
等价于`x = x + 5`。

6. 避免重复运算。

在复杂的表达式中,避免重复计算同一个值,可以使用临时
变量来存储计算结果。

总之,在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)。

1.C语言书写规范1.1符号命名规则1.1.1符号名包括模块名、常量名、标号名、子程序名等。

这些名字应该能反映它所代表的实际东西,具有一定的意义,使其能够见名知义,有助于对程序功能的理解。

命名采用匈牙利命名法。

规则如下:(1)所有宏定义、枚举常数和const变量,用大写字母命名。

在复合词里用下划线隔开每个词。

(2)复合词中每个单词的第一个字母大写。

除了规则5.1.1.1以外,避免使用下划线。

(3)类、类型定义和枚举型名的第一个字母大写。

(4)函数名是复合词的,第一个词采用全部小写,随后每个单词采用第一个字母大写,其它字母小写方式;如果是单个词的,采用全部小写方式。

(5)循环变量可采用i, j, k等,不受上述规则限制。

(6) 类的成员变量应采用m_开头。

(7) 全局变量词头为g_ 。

(8) 临时变量词头为tmp_ 。

(9) 对结构体内的变量命名, 遵循变量的具体含义命名原则(10)用小写字母的前缀表示变量的类型,前缀的下一个字母用大写。

表1词头类型词头类型ch char l longi integer u unsignedb boolean p pointerf float lp long pointerd double s stringst structure sz ASCII stringby byte n short intH handle x,y 分别为x,y坐标dw DWORD fn function表2词头变量名词头变量名task task sig signalsb binary semaphores wd watchdogsm mutual exclusionsemaphores tm timersc counting semaphores msg messagepipe pipe例:#define ARRAY_SIZE 24 /*规则5.1.1.1*/int g_iFlag;class MyClass /*规则5.1.1.3*/{};void someFunc( ) /*规则5.1.1.2和5.1.1.4*/ {.2.Q/ECC/BJ 010—2001int nArray[ARRAY_SIZE];unsigned char uchByte;char szName[ ];char *pszName = szName;}(11)有些词头(如p和u)可以和其它词头组合。

例:WDOG_ID wdId;WDOG_ID g_wdId; /*全局watchdog Id,故以g_开头*/1.1.2名字的长度一般不要过长或过短。

过长的名字会增加工作量,使程序逻辑流程变得模糊;过短的名字无法表达符号的实际意义。

约定长度范围:3-31;1.2数据和函数说明1.2.1数据说明次序应当规范化,使数据属性容易查找,也有利于测试、排错和维护。

说明的先后次序应固定,应按逻辑功能排序,逻辑功能块内建议采用下列顺序:整型说明、实型说明、字符说明、逻辑量说明。

1.2.2如果设计了一个复杂的数据结构,应当通过注释对其变量的含义、用途进行说明。

1.2.3在函数的声明中使用异常声明。

如:void f() throw(toobig, toosmall, divzero);在声明一个函数时,将它所抛出的异常列出,便于函数的使用者了解可能会发生哪些异常。

1.3 程序注释1.3.1程序注释是程序员与日后的程序读者之间通信的重要手段之一,注释分为文件注释、函数注释和功能注释。

1.3.2正规程序的注释应注意:——注释行的数量占到整个源程序的1/3到1/2。

1.3.3文件注释位于整个源程序的最开始部分,注释后空两行开始程序正文。

它包括:——程序标题。

——目的、功能说明。

——文件作者、最后修改日期等说明。

例:./********************************************************************(空一行)标题: Demo.c功能: 测试VxWorks的各种系统调用.说明:该程序测试各种VxWorks的系统调用函数。

包括任务(taks)的创建、挂起及任务间通过信号灯实现同步,通过消息队列进行通讯。

程序创建了两个任务:一个高优先级的任务和一个低优先级的任务。

两个任务间通过一个二进制的信号灯进行同步,通过消息队列进行通讯。

当前版本:x.x修改信息:2000.06.05 John,Initial Version2000.07.05 Tom,Bug xxxx fixed**************************************************************/(空2行,开始程序正文)1.3.4 函数注释通常置于每函数或过程的开头部分,它应当给出函数或过程的整体说明对于理解程序本身具有引导作用。

一般包括如下条目:——模块标题。

——有关本模块功能和目的的说明。

——调用格式——接口说明:包括输入、输出、返回值、异常。

——算法。

如果模块中采用了一些复杂的算法。

例:file://(注释开头应和上一函数空两行)(注释开头与上一函数最后一行间隔两行)/********************************************************************标题:assignmentComplete功能:BSC=>MSC消息生成函数,生成assignment_complete指配完成消息(BSMAP消息) .格式:int assignmentComplete(int iCellId, int iServiceChannnelNum, char *pszMSGData)throw(exception1, exception2)输入:int iCellId: MS所在的小区识别iCellId取值:0x00-——0xff .4.Q/ECC/BJ 010—2001int iServiceChannnelNum:MS所占的业务信道号码输出:char * pszMSGData:指配完成消息数据返回值: 0x00正常异常:exception1异常情况1, exception2异常情况2********************************************************************/ ( 注释后直接开始程序正文,不空行。

)1.3.5功能性注释嵌在源程序体中,用于描述其后的语句或程序段做什么工作,也就是解释下面要做什么,或是执行了下面的语句会怎么样。

而不要解释下面怎么做,因为解释怎么做常常与程序本身是重复的。

例:/*把amount 加到total中*/total = amount + total;这样的注释仅仅是重复了下面的程序,对于理解它的工作并没有什么作用。

而下面的注释,有助于读者理解。

/*将每月的销售额amount加到年销售额total中*/total = amount + total;1.4 函数编写应尽可能短小精悍,一般不超过两屏,以便于调试和理解。

1.5语句结构为保证语句结构的清晰和程序的可读性,在编写软件程序时应注意以下几个方面的问题:——在一行内只写一条语句,并采用空格、空行和移行保证清楚的视觉效果。

——每一个嵌套的函数块,使用一个TAB缩进(可以设定为4个空格),大括号必须放在条件语句的下一行,单独成一行,便于匹对:如,有一段程序如下:for(i=1;iif(a[j]应写为for( i=1; i<>{t=1;for(j = i+1; j<>{if(a[i]<A[J])< p>t=j;if(t!=1){ .5.Q/ECC/BJ 010—2001work=a[t];a[t]=a[i];a[i]=work;}}}——文件之中不得存在无规则的空行,比如说连续十个空行。

一般来讲函数与函数之间的空行为2-3行;在函数体内部,在逻辑上独立的两个函数块可适当空行,一般为1-2行。

——程序编写首先应考虑清晰性,不要刻意追求技巧性而使得程序难以理解。

——每行长度尽量避免超过屏幕宽度,应不超过80个字符。

——除非对效率有特殊要求,编写程序要作到清晰第一,效率第二。

——尽可能使用函数库。

——尽量用公共过程或子程序去代替重复的功能代码段。

要注意,这个代码应具有一个独立的功能,不要只因代码形式一样便将其抽出组成一个公共过程或子程序。

——使用括号清晰地表达算术表达式和逻辑表达式的运算顺序。

如将x=a*b/c*d 写成x=(a*b/c)*d 可避免阅读者误解为x=(a*b)/(c*d)。

——避免不必要的转移。

——避免采用过于复杂的条件测试。

——避免过多的循环嵌套和条件嵌套。

——建议不要使用*=,^=, /=等运算符。

——一个函数不要超过200行。

一个文件应避免超过2000行。

——尽量避免使用go to语句。

——避免采用多赋值语句,如x = y = z ;——不鼓励采用?:操作符,如z = (a>b)?a:b;——不要使用空的if else 语句。

如if(cMychar >= ‘A’)if(cMychar <= ‘Z’)printf(“This is a letter \n”);elseprintf(“This is not a letter \n”);else到底是否定哪个if容易引起误解。

可通过加{}避免误解。

——尽量减少使用“否定”条件的条件语句。

如:把if( !( (cMychar<’0’) || (cMychar>’9’) ) )改为if( (cMychar>=’0’) && (cMychar<=’9’) )。

相关文档
最新文档