Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4323
  • 博文数量: 6
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 65
  • 用 户 组: 普通用户
  • 注册时间: 2021-10-13 10:48
个人简介

这个人很懒

文章分类
文章存档

2021年(6)

我的朋友

分类: C/C++

2021-10-20 14:24:12

    好的程序编写规范是编写高质量程序的保证。清晰、规范的源程序不仅仅是方便阅读,更重要的是能够便于检查错误,提高调试效率,从而最终保证软件的质量和可维护性。


本文章适合编程初学者,对于具有一定工程项目开发经验的程序员,建议学习C语言程序代码编写规范—高级版。


1 代码书写规范


1.1函数定义


花括号:{ }


每个函数的定义和说明应该从第1列开始书写。函数名(包括参数表)和函数体的花括号应该各占一行。在函数体结尾的括号后面可以加上注释,注释中应该包括函数名,这样比较方便进行括号配对检查,也可以清晰地看出来函数是否结束。


范例1:函数的声明


void matMyFunction(int n)


{


……


} /* matMyFunction*/


1.2空格与空行的使用


要加空格的场合


l 在逗号后面和语句中间的分号后面加空格,如:


int i, j, k;


for (i = 0; i < n; i++)


result = func(a, b, c);


l 在二目运算符的两边各留一个空格,如


a > b a <= b i = 0


l 关键字两侧,如if () …, 不要写成if() …


l 类型与指针说明符之间一定要加空格:


char *szName;


不加空格的场合


l 在结构成员引用符号.和->左右两加不加空格:


pStud->szName, Student.nID


l 不在行尾添加空格或Tab


l 函数名与左括号之间不加空格:


func(…)


l 指针说明符号*与变量名间不要加空格:


int *pInt;不要写成: int * pInt;


l 复合运算符中间不能加空格,否则会产生语法错误,如:


a + = b a < = b都是错误的


空行与换行


l 函数的变量说明与执行语句之间加上空行;


l 每个函数内的主要功能块之间加空行表示区隔;


l 不要在一行中写多条语句.


范例2:空行与换行


int main()


{


int i, j, nSum = 0; //变量说明


for (i = 0; i < 10; i++) //执行代码


{


for (j = 0; j < 10; j++)


{


nSum += i;


}


}


}


1.3缩进的设置


根据语句间的层次关系采用缩进格式书写程序,每进一层,往后缩进一层


有两种缩进方式:1,使用Tab键;2,采用4个空格。


整个文件内部应该统一,不要混用Tab键和4个空格,因为不同的编辑器对Tab键的处理方法不同。


1.4折行的使用


· 每行的长度不要超过80个字符,当程序行太长时,应该分行书写。


· 当需要把一个程序行的内容分成几行写时,操作符号应该放在行末。


· 分行时应该按照自然的逻辑关系进行,例如:不要把一个简单的逻辑判断写在两行上。


· 分行后的缩进应该按照程序的逻辑关系进行对齐。例如:参数表折行后,下面的行应该在参数表左括号的下方。


范例2:折行的格式


dwNewShape = matAffineTransform(coords, translation,


rotation);


if (((new_shape.x > left_border) &&


(new_shape.x < right_border)) &&


((new_shape.y > bottom_border) &&


(new_shape.y < top_border)))


{


draw(new_shape);


}


1.5嵌套语句(语句块)的格式


对于嵌套式的语句--即语句块(如,if、while、for、switch等)应该包括在花括号中。花括号的左括号应该单独占一行,并与关键字对齐。建议即使语句块中只有一条语句,也应该使用花括号包括,这样可以使程序结构更清晰,也可以避免出错。建议对比较长的块,在末尾的花括号后加上注释以表明该语言块结束。


范例3:嵌套语句格式


if (value < max)


{


if (value != 0)


{


func(value);


}


}


} else {


error("The value is too big.");


} /* if (value < max) */


2 注释书写规范


注释必须做到清晰,准确地描述内容。对于程序中复杂的部分必须有注释加以说明。注释量要适中,过多或过少都易导致阅读困难。


2.1注释风格


· C语言中使用一组(/* … */)作为注释界定符。


· 注释内容尽量用英语方式表述。


· 注释的基本样式参考范例4。


· 注释应该出现在要说明的内容之前,而不应该出现在其后。


· 除了说明变量的用途和语言块末尾使用的注释,尽量不使用行末的注释方式。


范例4:几种注释样式


/*


* ************************************************


* 强调注释


* ************************************************


*/


/*


* 块注释


*/


/* 单行注释 */


//单行注释


int i; /*行末注释*/


2.2何时需要注释


· 如果变量的名字不能完全说明其用途,应该使用注释加以说明。


· 如果为了提高性能而使某些代码变得难懂,应该使用注释加以说明。


· 对于一个比较长的程序段落,应该加注释予以说明。如果设计文档中有流程图,则程序中对应的位置应该加注释予以说明。


· 如果程序中使用了某个复杂的算法,建议注明其出处。


· 如果在调试中发现某段落容易出现错误,应该注明。


3 命名规范


3.1常量、变量命名


l 符号常量的命名用大写字母表示。如:


#define LENGTH 10


l 如果符号常量由多个单词构成,两个不同的单词之间可以用下划线连接。如:


#define MAX_LEN 50


变量命名的基本原则:


l 可以选择有意义的英文(小写字母)组成变量名,使人看到该变量就能大致清楚其含义。


l 不要使用人名、地名和汉语拼音。


l 如果使用缩写,应该使用那些约定俗成的,而不是自己编造的。


l 多个单词组成的变量名,除第一个单词外的其他单词首字母应该大写。如:


dwUserInputValue。


3.2函数命名


函数命名原则与变量命名原则基本相同。对于初学者,函数命名可以采用“FunctionName”的形式。


4 其它一些小技巧和要求


l 函数一般情况下应该少于100行


l 函数定义一定要包含返回类型,没有返回类型加void


l 写比较表达式时,将常量放在左边


10 == n


NULL != pInt


l 指针变量总是要初始或重置为NULL


l 使用{}包含复合语句,即使是只有一行,如:


if (1 == a)


{


x = 5;


}


好买


阅读(708) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:从vue源码看观察者模式

给主人留下些什么吧!~~