C语言程序设计——基于计算思维的培养 课件 第13章 构建大规模程序.ppt

C语言程序设计——基于计算思维的培养 课件 第13章 构建大规模程序.ppt

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

第十三章大程序构建目录/Contents实例讲解0201多文件构成的优点以及注意事项多文件构成的优点以及注意事项01C程序构成常见的C程序由多个文件组成(包括源文件和头文件)。源文件(后缀为.c或者.cpp):函数的定义和外部变量头文件(后缀为.h):可以在源文件直接共享的信息多文件编写的优点把相关的函数和变量分组放在同一个文件中可以使程序的结构清晰可以分别对每一个源文件进行编译,单独修改,单独编译;把函数归类分组放在不同的源文件中更利于复用多文件编写引发的问题某个文件中的函数如何调用定义在其他文件中的函数呢?函数如何访问其他文件的外部变量?两个文件如何共享一个宏定义或类型定义?解决方法:使用文件包含指令(#include指令)#include指令的使用#include文件名引用C语言自身库的头文件搜寻:系统头文件所在的目录#include“文件名”引用所有的头文件,包含自己编写的头文件搜寻:先搜寻当前目录,然后搜寻系统头文件所在的目录==如果使用的是C语言自身库的头文件,最好使用也可指定目录:#include“c:\**\*.h”必须注意:当同一个头文件被同一个工程下不同文件重复包含时该如何处理?若程序中有2个文件#includeboolean.h==相应的内容(如下图中的三个符号常量)重复定义,进而无法通过编译解决办法:使用条件编译指令,用#ifndef-#endif来封闭文件的内容#ifndefBOOLEAN_H#defineBOOLEAN_H#defineTRUE1#defineFALSE0typedefintBool;#endif这里的BOOLEAN_H可以用任意合法标识符替换,但习惯上与头文件的名称相对应,一来便于阅读,二来不会出现重复使用同样的标识符实例讲解02完整案例分析---格式化文本程序源文件头文件word.cline.cjustify.c读单词的相关函数的具体实现行缓冲相关的函数的具体实现主调函数word.hline.hword.c中的函数的原型声明line.c中的函数的原型声明word.h#ifndefWORD_H#defineWORD_H?/***********************************************************read_word:Readsthenextwordfromtheinputand**storesitinword.Makeswordemptyifno**wordcouldbereadbecauseofend-of-file.**Truncatesthewordifitslengthexceeds**len.***********************************************************/voidread_word(char*word,intlen);?#endifline.h#ifndefLINE_H#defineLINE_H?/*clear_line:Clearsthecurrentline.*/voidclear_line(void);?/*add_word:Addswordtotheendofthecurrentline.Ifthisisnotthefirstwordontheline,putsonespacebeforeword.*/voidadd_word(constchar*word);/*space_remaining:Returnsthenumberofcharactersleftinthecurrentline.*/intspace_remaining(void);?/*write_line:Writesthecurrentlinewithjustification.*/voidwrite_line(void);?/*flush_line:Writesthecurrentlinewithoutjustification.Ifthelineisempty,

您可能关注的文档

文档评论(0)

balala11 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档