- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
v1.0可编写可改正
C语言书写规范指南
第1章文件结构
每个C程序往常分为两个文件。一个文件用于保存程序的声明(declaration),称为头
文件。另一个文件用于保存程序的实现(implementation),称为定义(definition)文
件。
C程序的头文件以“.h”为后缀,C程序的定义文件以“.c”为后缀。
版权和版本的声明
版权和版本的声明位于头文件和定义文件的开头(参见示例1-1),主要内容有:
1)版权信息。
2)文件名称,表记符,纲要。
3)目前版本号,作者/改正者,达成日期。
4)版本历史信息。
/*
*Copyright(c)2001,吉林大学物理学院无线电
*Allrightsreserved.
*
文件名称:
文件表记:
纲要:简要描绘本文件的内容
*
目前版本:
1
v1.0可编写可改正
*作者:输入作者(或改正者)名字
达成日期:2007年7月20日
*
取代版本:
*原作者:输入原作者(或改正者)名字
达成日期:2007年5月10日
*/
示例1-1版权和版本的声明
头文件的结构
头文件由三部分内容组成:
(1)头文件开头处的版权和版本声明(参见示例
1-1)。
2)预办理块。
3)函数和类结构声明等。
假定头文件名称为,头文件的结构参见示例1-2。
【规则1-2-1
】为了防备头文件被重复引用,应当用
#ifndef/#define/#endif结构产生预办理
块。
【规则1-2-2
】用#include
格式来引用标准库的头文件(编译器将从标准库目录开始搜
索)。
【规则1-2-3
】用#include
“”格式来引用非标准库的头文件(编译器将从用户的工作目录
开始搜寻)。
【规则1-2-4
】#include
后边使用TAB键控制排版
。
2
v1.0可编写可改正
【规则1-2-5
】头文件中只寄存“声明”而不寄存“定义”
【规则1-2-6
】全局变量在头文件中声明,在.c文件中定义
.hexternintvalue;
声明。
.cintvalue=0x10;
定义。
【规则1-2-7
】局部变量在.c中定义(static)unsignedintvalue;
定义。
、“-”这类操作符前后不加空格。
【建议2-3-1】关于表达式比较长的for语句和if语句,为了紧凑起见能够适合地去掉一些
空格,如for(i=0;i10;i++)和if((a=b)(c=d))
voidFunc1(intx,inty,intz);
3
v1.0可编写可改正
Function( );
b-Function( );
从左至右
!
~
++
--(种类)sizeof
从右至左
+
-
*
从左至右
*
/
%
+
-
从左至右
4
v1.0可编写可改正
从左至右
=
=
从左至右
==
!=
从左至右
从左至右
^
从左至右
|
从左至右
从左至右
||
从右至左
:
从右至左
=
+=
-=
*=
/=%==^=
从左至右
|=
=
=
表4-1运算符的优先级与联合律
【规则4-1-1】如果代码行中的运算符比较多,用括号确定表达式的操作次序,防止使用默认
的优先级。
由于将表4-1熟记是比较困难的,为了防备产生歧义并提高可读性,应当用括号确定表达
式的操作次序。比如:
word=(high8)|low
if((a|b)(ac))
复合表达式
如a=b=c=0这样的表达式称为复合表达式。允许复合表达式存在的原因是:
1)书写简短;(2)能够提高编译效率。但要防备滥用复合表达式。
【规则4-2-1】不要编写太复杂的复合表达式。比如:
i=a=bcdc+f=g+h;//复合表达式过于复杂
【规则4-2-2】不要有多用途的复合表达式。比如:
d=(a=b+c)+r;
该表达式既求a值又求d值。应当拆分为两个独立的语句:
a=b+c;
d=a+r;
5
v1.0可编写可改正
【规则4-2-3】不要把程序中的复合表达式与“真实的数学表达式”混杂。比如:
if(abc)//abc是数学表达式而不是程序表达式并不表示
if((ab)(bc))
而是成了令人费解的
if((ab)c)
语句
if语句是C语言中最简单、最常用的语句,但是好多程序员用隐含错误的方式
写if语句。本节以“与零值比较”为例,展开议论。
布尔变量与零值比较
【规则4-3-1】不可将布尔变量直接与TRUE、FALSE或许1、0进行比较。
根据布尔种类的语义,零值为“假”(记为FALSE),任何非零值都是“真”(记为
TRUE)。TRUE的值终究是什么并没有统一的标准。比如VisualC++将TRUE定义为1,
而VisualBasic则将TRUE定义为-1。
假定布尔变量名字为flag,它与零值比较的标准if语句如下:
if(flag)//
文档评论(0)