C语言书写规范指南
第 1 章文件结构
每个C程序通常分为两个文件。一个文件用于保存程序的声明( declaration ),称为头文
件。另一个文件用于保存程序的实现( implementation ),称为定义( definition )文件。
C程序的头文件以“ .h”为后缀,C程序的定义文件以“ .c”为后缀。
版权和版本的声明
1-1 ),主要内容有:
版权和版本的声明位于头文件和定义文件的开头(参见示例
1)版权信息。
2) 文件名称,标识符,摘要。
3) 当前版本号,作者 / 修改者,完成日期。
4)版本历史信息。
/*
*Copyright(c)2001, 吉林大学物理学院无线电
*Allrightsreserved.
*
文件名称:
文件标识:
*摘 要: 简要描述本文件的内容
*
* 当前版本:
* 作 者: 输入作者(或修改者)名字
*完成日期:
亠
2007年7月20日
* 取代版本:
*原作者 *完成日期:
:输入原作者(或修改者)名字
2007年5月10日
*/
示例 1-1版权和版本的声明
头文件的结构
头文件由三部分内容组成:
头文件开头处的版权和版本声明(参见示例 1-1 )。
预处理块。
函数和类结构声明等。
假设头文件名称为 ,头文件的结构参见示例1-2。
【规则1-2-1】为了防止头文件被重复引用,应当用 #ifndef/#define/#endif结构产生预处理块。
【规则1-2-2】用#inelude <>格式来引用标准库的头文件(编译器将从标准库目录开始搜
索)。
【规则1-2-3】用#inelude “格式来引用非标准库的头文件(编译器将从用户的工作目录开
始搜索)。
【规则1-2-4】 #inelude后面使用TAB键控制排版。
【规则1-2-5】头文件中只存放“声明”而不存放“定义”
【规则1-2-6】全局变量在头文件中声明,
.h extern in tvalue; 声明。
.c in tvalue=0x10; 定义。
【规则1-2-7】(static) unsigned in tvalue;定义。
->”这类操作符前后不加空格。
【建议2-3-1】对于表达式比较长的for语句和if语句,为了紧凑起见可以适当地去掉一些空 格,女口 for(i=0;i<10;i++)和 if((a<=b)&&(c<=d))
void Fun c1(i nt x,i nt y,i nt z);
从左至右
!〜++-_ (类型)sizeof
+ - * &
从右至左
* / %
从左至右
+ -
从左至右
<< >>
从左至右
< <= > >=
从左至右
== !=
从左至右
&
从左至右
A
从左至右
|
从左至右
&&
从左至右
II
从右至左
从右至左
=+= -= *= /= %= &= A =
|= <<= >> =
从左至右
表4-1运算符的优先级与结合律
【规则4-1-1】如果代码行中的运算符比较多,用括号确定表达式的操作顺序,避免使用默认的 优先级。
由于将表4-1熟记是比较困难的,为了防止产生歧义并提高可读性,应当用括号确定表达式 的操作顺序。例如:
word = (high<<8)|low
复合表达式
如a=b=c=0这样的表达式称为复合表达式。允许复合表达式存在的理由是: (1)书写简洁;(2)可以提高编译效率。但要防止滥用复合表达式。
【规则4-2-1】不要编写太复杂的复合表达式。例如:
i=a>=b&&c<d&&c+f<=g+h;〃复合表达式过于复杂
【规则4-2-2】不要有多用途的复合表达式。例如:
d=(a=b+c)+r;
该表达式既求a值又求d值。应该拆分为两个独立的语句:
a = b + c;
d = a + r;
【规则4-2-3】不要把程序中的复合表达式与“真正的数学表达式”混淆。例如:
if(a<b<c) 〃a<b<c是数学表达式而不是程序表达式并不表示
if ((a<b)&&(b<c)) 而是成了令人费解的
if((a<b)<c)
语句
if语句是C语言中最简单、最常用的语句,然而很多程序员用隐含错误的方式 写if语句。本节以“与零值比较”为例,展开讨论。
布尔变量与零值比较
【规则4-3-1】不可将布尔变量直接与 TRUE FALSER者1、0进行比较。
根据布尔类型的语义,零值为“假”(记为 FALSE,任何非零值都是“
C语言格式书写规范 来自淘豆网m.daumloan.com转载请标明出处.