- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编写大程序 把程序分成多个源文件有许多显著的特点 把相关的函数和变量分组放在同一个文件中可以使程序的结构清晰 可以分别对每一个源文件进行编译,单独修改,单独编译; 把函数归类分组放在不同的源文件中更利于复用 把程序分成多个源文件引发的问题 某个文件中的函数如何调用定义在其他文件中的函数呢? 函数如何访问其他文件的外部变量? 2个文件如何共享一个宏定义或类型定义? #include指令的使用 #include 文件名 引用C语言自身库的头文件 搜寻:系统头文件所在的目录 #include “ 文件名” 引用所有的头文件,包含自己编写的头文件 搜寻:先搜寻当前目录,然后搜寻系统头文件所在的目录 也可指定目录: #include “c:\**\*.h” 构建包含多文件的大型程序的步骤: 编译: 对程序中的每个源文件分别进行编译, 编译器会产生一个包含目标代码的文件。 链接:链接器把上一步产生的目标文件和库函数的代码结合在一起生产可执行的程序。 链接器的作用:解决编译器遗留的外部引用问题,即一个文件中的函数调用另外一个文件中定义的函数或变量。 * 第十二章:编写大型程序 * C程序结构 … 常见的C程序由多个源文件组成;还有一些头文件。 源文件: 函数的定义和外部变量 头文件: 可以在源文件直接共享的信息 C程序 源程序文件1 源程序文件2 源程序文件n 预编译命令 函数1 函数m 说明部分 执行部分 … 答案: #include指令 共享类型定义 在程序中有2个文件 #include boolean.h: 共享函数原型 当 prog.c 被编译时, file3.h将被编译2次,导致重定义错误. * 保护头文件 为了保护头文件,用 #ifndef-#endif来封闭文件的内容。 #ifndef BOOLEAN_H #define BOOLEAN_H #define TRUE 1 #define FALSE 0 typedef int Bool; #endif * 保护头文件---解决办法 完整案例分析——文本格式程序 这个程序分成3个文件 word.c: 读单词的相关函数 line.c: 行缓冲相关的函数 justify.c: 主调函数 对应3个头文件: word.h: word.c中的函数原型 line.h: line.c中的函数原型 word.h #ifndef WORD_H #define WORD_H ? /********************************************************** * read_word: Reads the next word from the input and * * stores it in word. Makes word empty if no * * word could be read because of end-of-file. * * Truncates the word if its length exceeds * * len. * **********************************************************/ void read_word(char *word, int len); ? #endif line.h #ifndef LINE_H #define LINE_H ? /********************************************************** * clear_line: Clears the current line. * **********************************************************/ void clear_line(void); ? /********************************************************** * add_word: Adds word to the end of the current line. * * If this is not the first word on the line, * * puts one sp
您可能关注的文档
- 2016年夏季演讲话稿:争做美德少年.doc
- 2016年人教版七年级历史上册第7课-战国时期社会变化.ppt
- 2016年一级建造师《市政工程》全真预测试卷和答案.docx
- 2016人教版五年级数学下册第一单元观察物体(三).ppt
- 2017-2018年人教A版高一数学必修3第一章《算法初步》第一节(算法与程序框图).ppt
- 2016-新部编版-13-乌鸦喝水教学课件.ppt
- 2017-2018一年级品社4—8.doc
- 2017部编版历史七年级下册第1课《隋朝统一和灭亡.ppt
- 2017高考语文考试试卷真题汇编之文言文阅读.doc
- 2017届第一轮复习总结:《文化生活》第九课-建设社会主义文化强国(2017).ppt
最近下载
- 缠绕机的安全操作规程.docx VIP
- 《自然界中的氧循环和碳循环》PPT【优质课件】.pdf VIP
- 砌体及构造柱圈梁等二次结构施工方案.docx VIP
- 专题02 字词梳理及运用(讲义+试题) -2023年一升二语文暑假衔接课(统编版).docx VIP
- 《学习工匠事迹,领略工匠风采》课件 2024—2025学年高教版(2023)中职语文职业模块.pptx VIP
- 国家开放大学,零售管理,形考三.pdf VIP
- 《人工智能:AIGC基础与应用》教学课件.pptx VIP
- 超声引导下冲击波治疗.pptx VIP
- 2024河北交通职业技术学院教师招聘考试笔试试题.docx VIP
- cbcc中国建筑色卡千色卡色号查询表.pdf VIP
原创力文档


文档评论(0)