精选文库
C语言书写规范指南
第1章文件结构
每个C程序通常分为两个文件。一个文件用于保存程序的声明( 文件。另一个文件用于保存程序的实现( impi eme ntation
件。
declarati ,但常常不明其理。这里对头文件的作用略作解释:
通过头文件来调用库功能。在很多场合,源代码不便(或不准)向用户公布,只要向用 户提供头文件和二进制的库即可。用户只需要按照头文件中的接口声明来调用库功能,而不 必关心接口怎么实现的。编译器会从库中提取相应的代码。
头文件能加强类型安全检查。如果某个接口被实现或被使用时,其方式与头文件中的声 明不一致,编译器就会指出错误,这一简单的规则能大大减轻程序员调试、改错的负担。
如果一个软件的头文件数目比较多(如超过十个),通常应将头文件和定义文件分别保存 于不同的目录,以便于维护。
例如可将头文件保存于 in elude 目录,将定义文件保存于 source目录(可以是多级目
录)。
如果某些头文件是私有的,它不会被用户的程序直接引用,则没有必要公开其“声明”。 为了加强信息隐藏,这些私有的头文件可以和定义文件存放于同一个目录。
第2章程序的版式
版式虽然不会影响程序的功能,但会影响可读性。程序的版式追求清晰、美观,是程序风 格的重要构成因素。
可以把程序的版式比喻为“书法”。好的“书法”可让人对程序一目了然,看得兴致勃 勃。差的程序“书法”如螃蟹爬行,让人看得索然无味,更令维护者烦恼有加。请程序员们 学习程序的“书法”,弥补大学计算机教育的漏洞,实在很有必要。
空行起着分隔程序段落的作用。空行得体(不过多也不过少)将使程序的布局更加清 晰。空行不会浪费内存,虽然打印含有空行的程序是会多消耗一些纸张,但是值得。所以不 要舍不得用空行。
【规则2-1-1】在每个函数定义结束之后都要加空行。参见示例 2-1 ( a)
【规则2-1-2】在一个函数体内,逻揖上密切相关的语句之间不加空行,其它地方应加空行分 隔。参见示例2-1 (b)
//空行
void Function1( …)
精选文库
}
//空行
void Function2(…)
}
示例2-1(a)函数之间的空行
//空行 while (con diti on)
stateme nt1;
//空行
if (con diti on) {
stateme nt2;
} else
stateme nt3;
}
//空行
stateme nt4;
}
示例2-1(b)函数内部的空行
【规则2-2-1】一行代码只做一件事情,如只定义一个变量,或只写一条语句。这样的代码容易阅 读,并且方便于写注释。
【规则2-2-2】if、for、while、do等语句自占一行,执行语句不得紧跟其后。不论执行语句有多 少都要加{}。这样可以防止书写失误。
示例2-2(a)为风格良好的代码行,示例 2-2 (b)为风格不良的代码行。
nt width;// 宽度
nt height;// 高度
nt dep th;// 深度
中间使用TAB键控制距离
int width,height,de pth;// 宽度高度深度
x = a+b; //等号左右用空格控制距离
y = c+d;
z = e+f;
x = a+b; y=c+d;z=e+f;
精选文库
if (width < height) //<左右用空格控制距离
{
dosomethingO; //使用TAB键控制距离 }
if(width<height)dosomething();
精选文库
for (initialization; condition; up date)
{ dosomething(); //使用TAB键控制距离
}
//空行
for(initialization;conditio n;up date)
dosomethingO;
other();
other();
示例2-2(b)风格不良的代码行
示例2-2(a)风格良好的代码行
【建议2-2-1】尽可能在定义变量的同时初始化该变量(就近原则)
如果变量的引用处和其定义处相隔比较远,变量的初始化很容易被忘记。如果引用了未被初 始化的变量,可能会导致程序错误。本建议可以减少隐患。例如
int
width
=10;
//定义并初绐化
width
int
height
=10;
//定义并初绐化
height
int
depth
=10;
//定义并初绐化
depth
使用TAB键控制距
C语言格式书写规范 来自淘豆网m.daumloan.com转载请标明出处.