- 1、本文档共29页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言编码范例2
1.文件结构(4条规则+6条建议)
C程序文件通常分为两类文件:一类文件用于保存程序的声明(declaration),称为头文件。头文件以“.h”为后缀。
另一类文件用于保存程序的实现(implementation),称为定义(definition)文件。定义文件以“.c”为后缀。对于简单的C语言程序,一般在把头文件和程序定义文件放在一起,只有一个.c定义文件即可。而对于复杂的程序,则多采用头文件包含的形式并通过多个定义文件实现。1.1 版权和版本的声明
版权和版本的声明一般应该位于头文件和定义文件的开头(参见示例1-1),主要内容包括:
(1) ? 版权信息;
(2) ? 文件名称、文件标识、摘要;
(3) ? 当前版本号、作者/修改者、修改日期、修改描述等;
(4) ? 版本历史信息、原作者、完成日期等。
/*
* Copyright (c) 2004,北大青鸟培训中心
* All rights reserved.
*
* 文件名称:filename.h
* 文件标识:根据软件工程设置
* 摘要:简要描述本文件的作用和内容等
*/
//下面其它的声明代码
…
//下面是原作者、版本、完成、日期和当前版本的信息
/* 当前版本:1.0.1
* 作者:修改者名字,修改日期:2005年4月5日
* 修改的地方描述:
*/
/*
* 取代版本:1.0.0
* 原作者:原作者名字,完成日期:2004年12月31日
*/ 示例1-1 版权和版本的声明
版本标识:采用主版本号.次版本号.修订号 来命名自己产品的编号。一般这样约定,如果次版本号是偶数(如0、2、4等),代表正式版本,如果次版本号是奇数(如1、3、5等),代表开发过程中的测试版本。修订号则相当于Build号,用来标识一些小的改动。1.2 头文件的结构
头文件由三部分内容组成:
(1) ? 文件开头处的版权和版本声明(参见示例1-1);
(2) ? 预处理块;
(3) ? 声明函数原型和声明数据结构或变量等。
假设头文件名称为filename.h,头文件的结构参见示例1-2。
/*
* Copyright (c) 2004,北大青鸟培训中心
* All rights reserved.
*
* 文件名称:filename.h
* 文件标识:根据软件工程设置
* 摘要:简要描述本文件的作用和内容等
*/
#include stdio.h#include stdlib.h
#include graphics.h ? // 引用头文件
struct studentstruct{int no;? char name[20];? char sex;? float score;};void GetValue(){}void SetValue(int no){}//后面同示例 1-1。 示例1-2 C头文件结构
1.3 定义文件的结构
定义文件有三部分内容:
(1)定义文件开头处的版权和版本声明(参见示例1-1);
(2)对一些头文件的引用;
(3)程序的实现体(包括数据和代码)。
假设定义文件的名称为filename.c,定义文件的结构参见示例1-3
/* 版权和版本声明见示例1-1,此处省略。*/
#inlcude “filename.h”#ifndef GRAPHICS_H ? // 防止graphics.h 被重复引用#define GRAPHICS_H
/* 函数的实现体*/
void GetValue()
{
? …
}
/* 函数的实现体*/
void SetValue(int no)
{
…
}
void main()
{
? …
} 示例1-3 C定义文件的结构
1.4头文件和定义文件使用(4条规则+6条建议)
【规则1-2-1】在复杂的工程文件中,为了防止头文件被重复引用,应使用ifndef/define/endif 结构产生预处理块。
【规则1-2-2】用#include filename.h 格式来引用标准库的头文件(编译器将从标准库目录开始搜索)。
【规则1-2-3】用#include “filename.h” 格式来引用非标准库的头文件(编译器将从用户的工作目录开始搜索)。
【规则1-2-4】只引用必需的头文件,不要为了防止忘记包含头文件而在每个文件开始添加很多的头文件。【建议1-2-1】不要在头文件中定义常量或变量,注意头文件只是用来声明。
【建议1-2-2】不提倡使用全局变量,尽量不要在头文件中出现像“extern int width;”这类声明。
【建议1-2-3】将非系统的函数库放在一个单独的目录下引用。
【建议1-2-4】头文件应按功能组织在一起,即对单独子系统的声明应放在单独的头文件中
文档评论(0)